2016-04-07 9 views
1

私は、異なるクラスの40以上の変数を持つ大きなデータフレームを持っています。変数の約半分は文字ですが、整数、論理などをそのまま残しながら、これらの変数を因数分解することを強制したいと思います。r:他のクラスを残している間に因数分解する文字変数を強制する

私は以下のようなlapply機能を使用して試してみましたが、それはすべての変数だけではなく文字を強制的に変換:

aframe2 <- as.data.frame(lapply(aframe1, factor)) 

ノー成功を収めてas.data.frame(aframe1, stringsAsFactors=TRUE)にも試してみました。私が間違っていることや、これを行うために使用できる他の機能がありますか?

答えて

1

これはif/else声明

aframe1[] <- lapply(aframe1, function(x) if(is.character(x)) factor(x) else x) 

または列のみにfactor列とループのインデックスを作成

i1 <- sapply(aframe1, is.character) 
aframe1[i1] <- lapply(aframe1[i1], factor) 
を使用することによって解決することができ
関連する問題