[R] help with creating new variables using a loop

arun smartpink111 at yahoo.com
Sun Feb 10 02:37:41 CET 2013


Hi,

Just to add:
If the columns are  not in the order (Mood1:Mood10) in the dataset. 
mood<- data.frame(Mood2=6:10,Mood1=1:5,Mood10=11:15,Mood3=16:20) 
do.call(cbind,lapply(names(mood),function(i) mood[i]*as.numeric(gsub("\\D+","",i))))

#  Mood2 Mood1 Mood10 Mood3
#1    12     1    110    48
#2    14     2    120    51
#3    16     3    130    54
#4    18     4    140    57
#5    20     5    150    60
A.K.


----- Original Message -----
From: christel lacaze <christellacaze at hotmail.co.uk>
To: r-help at r-project.org
Cc: 
Sent: Thursday, February 7, 2013 11:16 AM
Subject: [R] help with creating new variables using a loop


Hi there,

I've got a set of 10 numeric variables called Mood1 to Mood10 in a dataset called mood.  I'm trying to create a set of 10 new variables called m1 to m10 so that m1=Mood1*1, m2=Mood2*2, etc to m10=Mood10*10

Trawling through the internet, I eventually tried the following code:

for (i in 1:10){
  assign(x=paste0("mood$m",i),
         value=paste0("mood$Mood",i)*i,
         envir=.GlobalEnv)
}

unfortunately this doesn't work as it seems the paste0 function returns a list object that only contains the vector's name and not the vector itself.

Hope someone can help...

Christel
                          
    [[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