我需要您的帮助来简化以下代码。 我需要命名矩阵的列,并将每个列格式化为因子。 如果不逐一进行,我怎么能为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]))
答案 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))