2017-11-28 16 views
0

こんにちは私はRスタジオを使用して、データセット内で5000回も表示されないワインの種類を除外しています。setDを使用して値を削除するRのサブセット

私は、以下の機能を実行している - 私は、私はまだ他の632個の値を取得するがありますどのように多くのレベルを参照しようとすると、しかし

#create new data frame with varities greater than 5000 
wineVar <- setDT(wineNew)[, if(.N > 5000) .SD, by = variety] 
#list the unique varieties to show theres only 5 
unique(wineVar$variety) 

を。

[1] Cabernet Sauvignon  Pinot Noir    Chardonnay    
[4] Bordeaux-style Red Blend Red Blend    
632 Levels: Žilavka Agiorgitiko Aglianico Aidani Airen Albana Albarín ... Zweigelt 

それは私のトレーニングセットの問題を引き起こしていると完全にこれらを削除する方法があります - まだ訓練セットに値を見ているが、ドロップされた品種のデータはありませんとIEが。

+0

リファクタリングするだけです。 'wineVar $ variety < - factor(wineVar $ variety) 'のように – Eric

答えて

0

あなたが探しているのはこれだと思います。あなたはほとんどそこにいます。

wineVar <- setDT(wineNew) 
wineVar <- wineVar[, .SD[.N > 5000], by = variety] 
wineVar[, Variety:=as.factor(as.character(Variety))] 
+0

私の問題を解決してくれてありがとうございました。 – theJ

+0

もう一つのオプションは、少しシンプルです: 'Variety:= droplevels(Variety)' – Gregor

関連する問題