R(

2016-04-02 11 views
-1

)でcut()を使用してもマージがうまくいかない理由BMIカテゴリにデータの1つの列を分類する新しい列を作成しようとしています。これを新しい完全なデータフレームにバインドできます。しかし、私の現在のメソッドは、数値ベクトルを生成します。その結果、これは私の元のデータセットに縛られていないように見えます。R(

BMI_cut <- cut(alldata$BMI, 
       breaks = c(-Inf, 18.5, 25.0, 30.0, Inf), 
       labels = c("<18.50", "18.50-24.99", "25.00-29.99", ">=30.00"),   
       right = FALSE) 

BMIbind <- rbind(sorteddata, BMI_cut) 

これをしようと、私はエラーを取得: 警告メッセージ: 1:[<-.factorで(*tmp*、RI、値= 2L): 無効な因子レベル、NAをここで

は私のコードです 2生成: [<-.factor*tmp*、RI、値= 2L)で: 無効因子レベル、NAは

を生成し、その結果は、元のデータなしBMIカテゴリー列と結合され。唯一の違いは、< NA>、2および3の値を持つ新しい行です。これはわかりません。

私はRの完全な初心者です。さらに、これをはるかに簡単に行うことができるようなパッケージがいくつかありますが、これは割り当てのために使用できません。どんな助けでも大歓迎です。

+0

あなたは 'の一部を提供することができalldata $ BMI'は 'dput'を使っていますか?さもなければあなたの問題はほとんど再現できません(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610)。 –

+0

cutコマンドでは、rbindの場合は 'sorteddata'を使用してdata.frame' alldata'を使います。これらの2つが同じではない場合もありますか? – Thilo

答えて

0

私にはかなりの問題があります。上記のコメントですでに述べたように、あなたは別のdata.framesを使用します。

さらに、cbindrbindが混在しているようです。 rbindコンカチェット2 同一データ。cbindコンカット異なるカラム。

最後に、このちょうどこのようなあなたのdata.frameに別の列を追加することによって行うことができる:rbindcbindについては

alldata$BMI_cut <- cut(alldata$BMI, 
         breaks = c(-Inf, 18.5, 25.0, 30.0, Inf), 
         labels = c("<18.50", "18.50-24.99", "25.00-29.99", ">=30.00"),   
         right = FALSE) 

次を比較:

> rbind(data.frame(x=1:5), data.frame(x=6:10)) 
    x 
1 1 
2 2 
3 3 
4 4 
5 5 
6 6 
7 7 
8 8 
9 9 
10 10 
> cbind(data.frame(x=1:5), data.frame(x=6:10)) 
    x x 
1 1 6 
2 2 7 
3 3 8 
4 4 9 
5 5 10