0

以下のステートメントを使用して、整数変数を因数分解に置き換える必要があります。目標を達成できます。

training$v1 <- factor(training$v1)

しかし、私はこれらのv1からv100を100個持っています:私はこのコードを使用してこれでループを実行しようとしています..しかしそれは私にエラーを与えました。

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

何かお勧めはありますか?

ありがとう

4

2 に答える 2

4

dplyr明示的なループを使用しない1行のソリューション:

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 に答える