2016-04-29 12 views
0

2.85から16.11までの数値の変数glyhbを持っています。 5.7以下のすべてがカテゴリで、5.7から6.4までのすべてが別のもの、6.5以上のすべてがカテゴリであるカテゴリ変数にどのように変換できますか? enter image description here数値変数をカテゴリにする

+2

'cut'を使用して...... – Gregor

+2

私はquickyを見つけることができます:[R - cutで定義された間隔](http://stackoverflow.com/q/5746544/903061)、多分誰かが良い重複? – Gregor

+2

@Gregorこれはかなり似ています。 [指定要因レベ​​ルの間隔](http://stackoverflow.com/questions/21558129/specify-factor-levels-for-intervals) – lmo

答えて

1

ここで、ネストされたifelseを使用した例は次のとおり

set.seed(999) 
glyhb <- runif(100, 2.85, 16.11) 
categorical_glyhb <- factor(ifelse(glyhb >= 6.5, 3, ifelse(glyhb >= 5.7, 2, 1))) 
4

関数cut()パラメータbreaksで定義された値に従ってセグメントに数値ベクトルを分割します。この場合、値5.7がカテゴリ2に属し、値6.5がカテゴリ3に割り当てられることを指定するオプションright=FALSEを含めることができます。デフォルトでは、対応するセグメントの右側の境界に値が含まれます。

cut(glyhb, breaks=c(0,5.7,6.5,Inf), right=FALSE, labels=paste0("cat", c(1:3)) 

デフォルトでは、cut()はカテゴリ変数のベクトルを返します。 labelsオプションを使用して、これらの因子(レベル)のラベルを指定することができます。この場合、レベルcat1,cat2、およびcat3が選択されています。

これが役に立ちます。

関連する問題