如何根据各行的条件选择组,例如过滤包含值4(或任何其他条件)的所有组.
让我们采用一个非常简单的数据,有两组,我想选择B组(值为4)
library(dplyr)
df <- data.frame(Group=LETTERS[c(1,1,1,2,2,2)], Value=c(1:5,4))
> df
Group Value
1 A 1
2 A 2
3 B 3
4 B 4
Run Code Online (Sandbox Code Playgroud)
执行group_by()然后filter(如在此帖子中)将仅选择包含值4的单个行,而不是整个组:
df %>%
group_by(Group) %>%
filter(Value==4)
Group Value
<fctr> <int>
1 B 4
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的数据集:
Col1 Col2
1 ABC
2 DEF
3 ABC
1 DEF
Run Code Online (Sandbox Code Playgroud)
预期产量:
Col1 Col2
1 ABC
1 DEF
Run Code Online (Sandbox Code Playgroud)
我想只从Col1中提取那些同时具有值ABC和DEF列的IDS .
我self-join在SQL中尝试了但是没有给我预期的结果.
SELECT DISTINCT Col1
FROM db A, db B
WHERE A.ID <> B.ID
AND A.Col2 = 'ABC'
AND B.Col2 = 'DEF'
GROUP BY A.Col1
Run Code Online (Sandbox Code Playgroud)
另外,我在R中使用以下代码尝试了同样的事情:
vc <- c("ABC", "DEF")
data1 <- db[db$Col2 %in% vc,]
Run Code Online (Sandbox Code Playgroud)
再一次,我没有得到所需的输出.感谢所有指针提前.