我想申请上依次标有许多变数一系列简单的功能并结合这些新创建的变量相同的数据帧。 我设法做的第一部分(主要是与以前的答案的帮助下),而不是第二部分。
dat <- data.frame(x1=sample(c(0:1)), av1 = sample(10) , av2 = sample(10) , av3 = sample(10),av4=sample(10))
dat$t1<-ifelse(dat$x1==1,dat$av1*2/7,dat$av1*5/7)
dat$t2<-ifelse(dat$x1==1,dat$av2*2/7,dat$av2*5/7)
dat$t3<-ifelse(dat$x1==1,dat$av3*2/7,dat$av3*5/7)
dat$t4<-ifelse(dat$x1==1,dat$av4*2/7,dat$av4*5/7)
dat
基本上,我想在AV1,AV2,AV3的所有值重复这些ifelse声明..而无需重新输入函数来创建打成TU1,TU2,TU3相应的变量各一次。 例如:
dat <- cbind(dat, sapply(dat[grep("av", names(dat))], function(col) { ifelse(dat$x1==0, col*2/7, col*5/7) } ) )
然而,现在所有的新的变量也标为AV。 我想我以后可以更改列的名称,例如:
names( dat)[10:13] <- gsub("av", "tu", names(dat)[10:13])
因为我一直在我的代码预先添加/删除变量的列数不断变化。 有没有办法为我创造,重视并同时重新标记新的变数? 或者是有过申请顺序标记的变量相同功能的更好的办法?