2016-04-05 7 views
1

私は> 100個の列を持つデータフレームを持っています。これらはすべてINTです。R - データフレームと因数分解変数のトラブルシューティング

私は私がANOVAを実施することができ、私はfactoriseしたいいくつかの列をサブセット化している、

my_variables_list = headers[grep('independent', headers)] 

今、私はすべてのこれらの変数とfactoriseをループしたいと言う:

for (i in my_variables_list) { 
    df$i = as.factor(df$i) 
} 

しかし、これはうまくいきません - エラーメッセージは返されませんが、dfは変更されません。同様に、私はこれの1行を実行しようとすると失敗します。

df$my_variables_list[10] <- as.factor(df$my_variables_list[10]) 
+0

あなたのデータの一部を提供することができフレーム? –

答えて

1

あなたは、forループの中にあなたのデータフレームをサブセット化[]演算子を使用する必要があります。iris

for (i in my_variables_list) { 
    df[,i] = as.factor(df[,i]) 
} 
+0

素晴らしい! :)ありがとう –

1

の例では、ループを回避することができます。私たちは、最初のlapply

my_variables_list = grep('Petal|Sepal', colnames(iris)) 
iris[, my_variables_list] <- lapply(iris[, my_variables_list], as.factor) 

またはあなたのdata.frameを考慮して、これらの列を変換し、その後、irisのCOLNAMESにパタパタSepalまたはSepalを探して:

df[,my_variables_list] <- lapply(df[, my_variables_list], as.factor) 
関連する問題