如何为r中的多个变量创建循环作业来更改/转换类型

时间:2013-02-04 23:30:25

标签: r loops

我需要使用下面的语句将整数变量替换为factor我可以实现我的目标。

training$v1 <- factor(training$v1)

但我有100个这样的v1到v100:我正在尝试使用此代码对此进行循环..但它给了我错误。

for (i in 1:100) {
    training$vi <-factor(training$vi)
}

有什么建议吗?

谢谢

2 个答案:

答案 0 :(得分:4)

不使用显式循环的单行dplyr解决方案:

training <- mutate_each(training, funs(factor), v1:v100)

或等效地,使用管道和替代变量选择器:

training <- training %>% mutate_each(funs(factor), num_range('v',1:100))

Etc等

答案 1 :(得分:2)

你可以在for循环中尝试这个

clm <- paste("v", i, sep = "")
training[, clm] <- factor(training[, clm]

或使用列索引。例如,您要修改的列是2:101

for (i in 2:101) {
    training[, i] <- factor(training[, i])
}