2015-03-12 2 views
-2

Мне нужна ваша помощь, чтобы упростить следующий код. Мне нужно назвать столбцы матрицы и форматировать каждый из них как фактор. Как я могу сделать это для 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

Вот один вариант

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)) 
Смежные вопросы