我需要从我的数据框中删除一些重复的记录.但只是特定组合的重复.
例如,从这个例子中Id|Status我想删除状态为"B"的重复项.也就是说,状态"A"可以多次出现,但状态"B"每个"Id"只能出现一次
1 A
1 A
1 A
1 A
2 A
2 A
1 B
2 B
2 B
Run Code Online (Sandbox Code Playgroud)
它应该导致:
1 A
1 A
1 A
2 A
2 A
1 B
2 B
Run Code Online (Sandbox Code Playgroud)
这是最好的方式吗?
测试数据:
test <- data.frame(id=c(1,1,1,1,2,2,1,2,2))
test$status <- c("A","A","A","A","A","B","B", "B")
Run Code Online (Sandbox Code Playgroud)
这可能会做你想要的.如果测试相等性,则第二列值为NA时可能会出现问题.x == "B"将是NA,然后结果中将有一行NA.
test <- read.table(text="1 A
1 A
1 A
1 A
2 A
2 A
1 B
2 B
2 B")
test[ !( duplicated(test) & ( test[[2]] %in% "B")) , ]
#-------
V1 V2
1 1 A
2 1 A
3 1 A
4 1 A
5 2 A
6 2 A
7 1 B
8 2 B
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |