2016-11-29 23 views
-1

私は以下のデータテーブルを持っており、Web、モバイルの使用以外のものを別のカテゴリに置き換えたいと考えています。 (OR) Web、モバイル1、その他 - 4(OR)データの条件付き置換値を行う方法

のように値を置き換えることなく、Web、モバイル、その他すべてのものとして使用法がグループ化されていますか?そうする。 「使用法」と仮定すると

Id Name Usage 
1 AAA  Web 
2 BBB Mobile 
3 CCC Manual 
4 DDD  M1 
5 EEE  M2 
6 FFF  M3 
+3

ifelse()は仕事をしなければなりません! –

+1

df $使用法< - ifelse(%f( "Web"、 "Mobile")、df $ Usage、 "Others") –

+1

'Usage'が文字変数の場合、' df [!df $ Usage %c( 'Web'、 'Mobile')、 'Usage'] < - 'その他' – Jaap

答えて

3

我々は、論理的なインデックスを作成するために%chin%を使用して(!)を否定し、「その他」の「使用法」に(:=)値を割り当てることができ、characterクラスです。これは、コピーを行わずに割り当てを行うより効率的です。

library(data.table) 
setDT(df1)[!Usage %chin% c("Web", "Mobile"), Usage := "Others"] 
df1 
# Id. Name Usage 
#1: 1 AAA Web 
#2: 2 BBB Mobile 
#3: 3 CCC Others 
#4: 4 DDD Others 
#5: 5 EEE Others 
#6: 6 FFF Others 
関連する問題