如何在数据中进行条件替换值

时间:2016-11-29 06:51:24

标签: r

我有下面的数据表,并希望替换除Web以外的其他类别的其他类别。 (要么) 无论如何将用户分为Web,Mobile和其他所有用户而不替换Web使用的值1,Mobile 1和Others - 4(OR)

我们是否需要编写一个函数来执行此操作。

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

1 个答案:

答案 0 :(得分:3)

假设'Usage'是character类,我们可以使用%chin%创建逻辑索引,取消它(!)并赋值(:=)在“使用”中对“他人”。由于我们在没有任何复制的情况下进行分配,因此效率会更高。

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