R问题。在data.frame上使用lapply并使用/ output创建新变量

时间:2010-05-09 16:36:25

标签: r statistics dataframe lapply

我在data.frame中有13个定量变量(称为“UNCA”)。

变量名为q01_a,q01_b,... q01_m。

我想创建13个具有相同值但被编码为因子的新变量。

我想将这13个新变量命名为q01_a.F,q01_b.F,... q01_m.F。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:4)

for (i in names(UNCA)) {
    UNCA[,paste(i,"F",sep='.')] <- as.factor(UNCA[,i])
}

答案 1 :(得分:2)

这不是一个漂亮的解决方案,但你可以做到

d<-data.frame(matrix(sample(26),ncol=13))
names(d)<-paste("q01_",letters[1:13],sep="")

d2<-data.frame(lapply(d,factor))
# or if each variable should have common levels of factor:
# d2<-data.frame(lapply(d,factor, levels=sort(unique(unlist(d)))))

names(d2)<-paste(names(d),"F",sep=".")
d<-cbind(d,d2)