【发布时间】:2021-11-02 23:55:47
【问题描述】:
下面是我的数据的样子。我的目标是找到所有与 x、z 和 m 匹配但 y 不同的行。而且我需要保留两个或全部具有不同 y 的那些。
我该怎么做?
x <- c("A","B","C","B","D","E","E")
y <- c(0,10,10,10,10,12,0)
z <- c("A1","B1","B1","B1","B1","C1","C1")
m <- c(rep("2017-12-28",7))
df <- data.frame(x,y,z,m)
df
# Below is the goal
df[6:7,]
【问题讨论】:
-
你在比较什么?行的值与什么相同或不同?
-
目标中显示的第 6 行和第 7 行匹配 x、z 和 m,但不同的 y。所以它是所有匹配的,但不同的 y,只要保留所有不同的 y 行。
-
你还没有定义你所称的
match -
如果
df[ave(df[["y"]], df[c("x","z","m")], FUN=\(x) length(unique(x)) ) > 1,]之类的东西符合您的要求,可以肯定这是重复的。也许stackoverflow.com/questions/50953598/…本质上或stackoverflow.com/questions/12840294/…? -
我链接的第二个问题建议 -
df %>% group_by(x,z,m) %>% filter(n_distinct(y) > 1)
标签: r