我有下面的数据表,并希望替换除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
答案 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