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.