0

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

training$v1 <- factor(training$v1)

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

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

有什么推荐吗?

谢谢

4

2 回答 2

4

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

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

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

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

等等等等

于 2015-03-26T10:23:17.957 回答
2

您可以在 for 循环中尝试此操作

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

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

for (i in 2:101) {
    training[, i] <- factor(training[, i])
}
于 2013-02-04T23:36:04.000 回答