[R] create variables through a loop
Jean-Christophe BOUËTTÉ
jcbouette at gmail.com
Thu Sep 22 19:55:00 CEST 2011
On how to use named vs. positional arguments, you can also have a look
at section 2.3 of "an introduction to R".
2011/9/22 Jean-Christophe BOUËTTÉ <jcbouette at gmail.com>:
> Hi,
> It's hard to provide you with working code when you don't provide a
> reproducible example, but do you really need to create variables? What
> about (untested):
>
> for (i in 1:2) {
> first <-cbind(first, result.fun[[i]])
> }
>
> you will then have to look at
> names(first)
> and change the last part of it to
> paste("array",2:3,sep="")
>
> Hope that works!
> JC
>
> 2011/9/22 Changbin Du <changbind at gmail.com>:
>> HI, Michael,
>>
>> I tried use x and got the following:
>>
>>> for (i in 2:3) {
>> +
>> + assign(x=paste("array", i, sep=""), value=result.fun[[i-1]])
>> +
>> + first <-cbind(first, x)
>> +
>> + }
>> *Error in cbind(first, x) : object 'x' not found
>> *
>>
>> But I checked the
>> ls()
>> "array2" "array3" were created.
>>
>> Can I put them into the first data set by loop, or manually?
>>
>> Thanks!
>>
>>
>> P.S I search the similar codes from google and can not work as I expected.
>>
>> Thanks!
>>
>>
>>
>> On Thu, Sep 22, 2011 at 10:11 AM, R. Michael Weylandt <
>> michael.weylandt at gmail.com> wrote:
>>
>>> There is no "lab=" argument for assign() hence the error. Did someone
>>> provide you with example code that suggested such a thing? remove lab=
>>> entirely or replace it with x= to make your code work. More generally type
>>> ?assign or args(assign) to see what the arguments for a function are.
>>>
>>> More generally, this sort of thing may be best handled in a list rather
>>> than an set of independent variables.
>>>
>>> Michael Weylandt
>>>
>>> On Thu, Sep 22, 2011 at 1:07 PM, Changbin Du <changbind at gmail.com> wrote:
>>>
>>>> HI, Dear R community,
>>>>
>>>> I am trying to created new variables and put into a data frame through a
>>>> loop.
>>>>
>>>> My original data set:
>>>>
>>>> head(first)
>>>> probe_name chr_id position array1
>>>> 1 C-7SARK 1 849467 10
>>>> 2 C-4WYLN 1 854278 10
>>>> 3 C-3BFNY 1 854471 10
>>>> 4 C-7ONNE 1 874460 10
>>>> 5 C-6HYCN 1 874571 10
>>>> 6 C-7SCGC 1 874609 10
>>>>
>>>>
>>>> I have 48 other array data from a list result.fun
>>>> array2=result.fun[[1]]
>>>> array3=result.fun[[2]]
>>>> .
>>>> .
>>>>
>>>> I want the following results:
>>>>
>>>> probe_name chr_id position array1 array2 array3
>>>> 1 C-7SARK 1 849467 10 10 10
>>>> 2 C-4WYLN 1 854278 10 10 10
>>>> 3 C-3BFNY 1 854471 10 10 10
>>>> 4 C-7ONNE 1 874460 10 10 10
>>>> 5 C-6HYCN 1 874571 10 10 10
>>>> 6 C-7SCGC 1 874609 10 10 10
>>>>
>>>>
>>>> I used the following codes:
>>>>
>>>> for (i in 2:3) {
>>>>
>>>> assign(lab=paste("array", i, sep=""), value=result.fun[[i-1]])
>>>>
>>>> first <-cbind(first, lab)
>>>>
>>>> }
>>>>
>>>> *Error in assign(lab = paste("array", i, sep = ""), value = result.fun[[i
>>>> -
>>>> :
>>>> unused argument(s) (lab = paste("array", i, sep = ""))*
>>>>
>>>>
>>>> Can anyone give some hits or helps?
>>>>
>>>> Thanks so much!
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Sincerely,
>>>> Changbin
>>>> --
>>>>
>>>> [[alternative HTML version deleted]]
>>>>
>>>> ______________________________________________
>>>> R-help at 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.
>>>>
>>>
>>>
>>
>>
>> --
>> Sincerely,
>> Changbin
>> --
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at 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.
>>
>
More information about the R-help
mailing list