On 07/03/2009 02:13 PM, Kurt Smith wrote:
Are you sure it would work?

It works when I physically enter "56 Fe [1]" but fails when I try to
enter that anything other then directly.

 instrument.input[1,6]
[1] 56  Fe  [ 1 ]
43 Levels: 10840277.06 109014288.37 11055630.67 11456522.47 ... CPS
 assign(instrument.input[1,6], temp.data)
Error in assign(instrument.input[1, 6], temp.data) :
   invalid first argument

that is because instrument.input[1,6] is a factor. You would need something like this untested call :

R> assign( as.character( instrument.input[1,6] ), temp.data )

Whether all of this is a good idea is up to you

 temp.name<- instrument.input[1,6]
 temp.name
[1] 56  Fe  [ 1 ]
43 Levels: 10840277.06 109014288.37 11055630.67 11456522.47 ... CPS
 assign(temp.name, temp.data)
Error in assign(temp.name, temp.data) : invalid first argument

and it seems that it is because the varible begins with an integer R doesn't 
like it.
Would it be possible to use gsub to create Fe561?

sure.

R> gsub( "[^[:alnum:]]", "", gsub( "([[:digit:]]+)(.*)", "\\2\\1", "56 Fe [1]" ) )
[1] "Fe156"

others probably have a one call solution

 R>  gsub( "[^[:alnum:]]", "", "56 Fe [1]" )
 [1] "56Fe1"



 > Date: Fri, 3 Jul 2009 13:09:20 +0200
 > From: romain.franc...@dbmail.com
 > To: kurt.sm...@hotmail.co.uk
 > CC: r-help@r-project.org
 > Subject: Re: [R] Remove all spaces from a string so it can be used by
assign()
 >
 > On 07/03/2009 12:56 PM, Kurt Smith wrote:
 > >
 > > Hi
 > >
 > > I have a string "56 Fe [1]" that I would like to use as a variable
name by using "assign" however I think the spaces and brackets might be
causing R some trouble.
 >
 > Not really;
 >
 > R> assign( "56 Fe [1]", 10 )
 > R> `56 Fe [1]`
 > [1] 10
 >
 > > How can I change the string so that it just becomes 56Fe1 and can
be used as a variable name.
 >
 > 56Fe1 is not good enough to be assigned without quotes
 >
 > R> 56Fe1 <- 10
 > Error: unexpected symbol in "56Fe1"
 >
 > You might be interested in make.names
 >
 > R> make.names( "56 Fe [1]" )
 > [1] "X56.Fe..1."
 >
 > Otherwise, to answer your question, you can :
 >
 > R> gsub( "[^[:alnum:]]", "", "56 Fe [1]" )
 > [1] "56Fe1"
 >
 >
 > > Thank You
 > >
 > > Kurt
 >
 >
 > --
 > Romain Francois
 > Independent R Consultant
 > +33(0) 6 28 91 30 30
 > http://romainfrancois.blog.free.fr
 > |- http://tr.im/qJ8V : RGG#153: stars network
 > |- http://tr.im/qzSl : using ImageJ from R: the RImageJ package
 > `- http://tr.im/qzSJ : with semantics for java objects in rJava

------------------------------------------------------------------------
View your Twitter and Flickr updates from one place - Learn more!
<http://clk.atdmt.com/UKM/go/137984870/direct/01/>


--
Romain Francois
Independent R Consultant
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://tr.im/qJ8V : RGG#153: stars network
|- http://tr.im/qzSl : using ImageJ from R: the RImageJ package
`- http://tr.im/qzSJ : with semantics for java objects in rJava

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to