我有下面提到的数据框:
注意:我在数据框中有大约 20 万行,并且希望在整个数据框中运行逻辑。
ID Num MAX CH
1 22 A XCA-1
2 24 B VBS-1
3 54 A XCA-1
4 48 A XCA-1
5 88 C CXV-1
6 87 B VBS-1
7 98 A VBS-0
如何检查MAX
我们在CH
整个数据框中具有相同的每个值并添加一个带有状态的新列(即匹配或不匹配)。
所需数据框:
ID Num MAX CH ST
1 22 A XCA-1 Not Match
2 24 B VBS-7 Match
3 54 A XCA-1 Not Match
4 48 A XCA-1 Not Match
5 88 C CXV-4 Match
6 87 B VBS-7 Match
7 98 A VBS-0 Not Match
我们可以使用data.table
. 按'MAX'分组后,获取'CH'的唯一编号作为逻辑向量填充'Not Match'、'Match'并将其分配给'ST2'以创建列
library(data.table)
setDT(df1)[, ST2 := c("Not Match", "Match")[(uniqueN(CH) == 1) + 1], MAX]
df1
# ID Num MAX CH ST2
#1: 1 22 A XCA-1 Not Match
#2: 2 24 B VBS-1 Match
#3: 3 54 A XCA-1 Not Match
#4: 4 48 A XCA-1 Not Match
#5: 5 88 C CXV-1 Match
#6: 6 87 B VBS-1 Match
#7: 7 98 A VBS-0 Not Match
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句