仅识别非重复行
Identify only non duplicated rows
我有一个包含许多重复行的数据集,我只想隔离 非重复值。
我的 df 看起来像这样
df <- data.frame("group" = c("A", "A", "A","A","A","B","B","B"),
"id" = c("id1", "id2", "id3", "id1", "id2","id1","id2","id1"),
"Val" = c(10,10,10,10,10,12,12,12))
我想提取的只是没有重复的行。即我的最终数据集应该是这样的
final <- data.frame("group" = c("A","B"),
"id" = c("id3","id2"),
"Val" = c(10,12))
请注意,我对查找唯一值不感兴趣,而是对不重复的值感兴趣。
我知道如何找到唯一值,例如 df %>% distinct()
就可以完成这项工作。这是我正在努力解决的个性化非重复行
这是一种选择。
library(dplyr)
df %>%
group_by(group) %>%
filter(!(duplicated(id)|duplicated(id, fromLast = TRUE)))
或单独使用 dplyr
df %>%
group_by_all %>%
filter(n() ==1)
或使用base R
df[!(duplicated(df[1:2])|duplicated(df[1:2], fromLast = TRUE)),]
我有一个包含许多重复行的数据集,我只想隔离 非重复值。 我的 df 看起来像这样
df <- data.frame("group" = c("A", "A", "A","A","A","B","B","B"),
"id" = c("id1", "id2", "id3", "id1", "id2","id1","id2","id1"),
"Val" = c(10,10,10,10,10,12,12,12))
我想提取的只是没有重复的行。即我的最终数据集应该是这样的
final <- data.frame("group" = c("A","B"),
"id" = c("id3","id2"),
"Val" = c(10,12))
请注意,我对查找唯一值不感兴趣,而是对不重复的值感兴趣。
我知道如何找到唯一值,例如 df %>% distinct()
就可以完成这项工作。这是我正在努力解决的个性化非重复行
这是一种选择。
library(dplyr)
df %>%
group_by(group) %>%
filter(!(duplicated(id)|duplicated(id, fromLast = TRUE)))
或单独使用 dplyr
df %>%
group_by_all %>%
filter(n() ==1)
或使用base R
df[!(duplicated(df[1:2])|duplicated(df[1:2], fromLast = TRUE)),]