2

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

这些变量被命名为 q01_a、q01_b、...q01_m。

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

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

任何帮助将不胜感激!

4

2 回答 2

4
for (i in names(UNCA)) {
    UNCA[,paste(i,"F",sep='.')] <- as.factor(UNCA[,i])
}
于 2010-05-09T17:59:56.560 回答
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)
于 2010-05-09T17:35:56.007 回答