[R] character substitution within a variable name
Rolf Turner
rolf.turner at xtra.co.nz
Thu Nov 24 02:45:52 CET 2011
On 24/11/11 09:23, matric wrote:
> Thanks Duncan,
> I knew it. But if I use the complete variable name, I'll have far too
> many arguments for my function....
Did you understand Duncan's post? He told you that
df[,var]
would work, whereas df$var doesn't. So he gave you a solution
to the problem whereby you ***don't*** have to use the ``complete
variable name''.
The ``var'' in the foregoing is the object (character string) that you
constructed using paste(). I think you are misinterpreting Duncan
to be suggesting that you use df[,"x_narrow"], df[,"x_wide"] etc.
explicitly.
cheers,
Rolf Turner
P. S. But anyway, as Duncan said in a follow-up post, a new design is
probably
called for.
R. T.
> On 23 November 2011 20:59, Duncan Murdoch-2 [via R]
> <ml-node+s789695n4101308h84 at n4.nabble.com> wrote:
>> On 23/11/2011 2:29 PM, matric wrote:
>>> Hi,
>>> I'd like to create a function that accepts as arguments a string that is
>>> to
>>> be substituted within a variable name. For instance, suppose I have a data
>>> frame df:
>>>
>>> df<-data.frame(x_narrow=c(rnorm(100,0,1)),x_wide=c(rnorm(100,0,10)))
>>>
>>> What I have in mind is something like:
>>>
>>> f<- function(string){
>>> var = paste("x_",string,sep = "")
>>> df$var
>>> }
>>>
>>> which does not work. Any suggestion for modifications? Thanks in advance,
>> For indexing a dataframe, use the name as the column index:
>>
>> df[, var]
>>
>> will work.
>>
>> Duncan Murdoch
More information about the R-help
mailing list