将数据框的列命名并同时设置为因子

时间:2015-03-12 15:51:16

标签: r matrix dataframe

我需要您的帮助来简化以下代码。 我需要命名矩阵的列,并将每个列格式化为因子。 如果不逐一进行,我怎么能为100列做到这一点。

z <- matrix(sample(seq(3),n*p,replace=TRUE),nrow=n)
train.data <- data.frame(x1=factor(z[,1],x2=factor(z[,2],....,x100=factor(z[,52]))

1 个答案:

答案 0 :(得分:0)

这是一个选项

setNames(data.frame(lapply(split(z, col(z)), factor)), paste0("x", 1:p))

或使用magrittr管道语法

library(magrittr)
split(z, col(z)) %>% 
    lapply(factor) %>% 
    data.frame %>% 
    setNames(paste0("x", 1:p))