r - 使用 dplyr 删除数据框中的组
问题描述
我需要帮助才能删除我在 COL3 中具有 1 个唯一值的组。这是df
COL1 COL2 COL3 COL4
G1 SEQ1_-_eje.2 SEQB87 A
G1 SEQ.2_+_eje.2 SQB83 B
G1 SEQ.2_+_eje.2 SQB800 C
G1 SEQ1_-_eje.2 SEB900 D
G2 SEQJ_-_eje.9 SEQOPL E
G2 SEQJ_-_eje.7 SEQOPL F
G2 SEQJ_-_eQe.3 SEQOPL G
G3 SEQQ_+_eje.2 LOP2 H
G3 SEQQ_-_eje.2 LOPE I
这里只有G2
一个唯一的COL3
值SEQOPL
,所以我删除了这个组并保留了它G1
,G3
它们分别具有不同的元素。3
2 COL3
预期结果 :
COL1 COL2 COL3 COL4
G1 SEQ1_-_eje.2 SEQB87 A
G1 SEQ.2_+_eje.2 SQB83 B
G1 SEQ.2_+_eje.2 SQB800 C
G1 SEQ1_-_eje.2 SEB900 D
G3 SEQQ_+_eje.2 LOP2 H
G3 SEQQ_-_eje.2 LOPE I
也许这个想法是删除length(unique(df$COL3))=1
?
解决方案
你的想法是正确的,诀窍是先分组COL1
:
df <- data.frame(COL1 = c(rep("G1", 4), rep("G2", 3), rep("G3", 2)),
COL3 = c("SEQB87", "SQB83", "SQB800", "SQB900",
rep("SEQOPL", 3), "LOP2", "LOPE"),
COL4 = LETTERS[1:9])
library(dplyr)
df %>%
group_by(COL1) %>%
filter(length(unique(COL3)) > 1)
# A tibble: 6 x 3
# Groups: COL1 [2]
COL1 COL3 COL4
<fct> <fct> <fct>
1 G1 SEQB87 A
2 G1 SQB83 B
3 G1 SQB800 C
4 G1 SQB900 D
5 G3 LOP2 H
6 G3 LOPE I
推荐阅读
- c# - 来自程序集“IBM.EntityFrameworkCore”的“IBM.EntityFrameworkCore.Query.Internal.Db2SqlTranslatingExpressionVisitorFactory”类型中的方法“创建”
- vb.net - 如何从 vb.net 打开 adobe reader
- c++ - How to convert analog input readings from Arduino to .WAV from sketch
- python - AWS Lambda 中的中间件与 Python
- bash - 删除不包含“a、i、o”的单字词
- python - 如何编写将用户重定向到另一个 URL 的函数?(烧瓶)
- javascript - 如何清除最后一个@Input 变量值?角 2+
- oracle - 你如何在 ubuntu 上编译 occi 演示?
- r - dbinom - 4 参数逻辑回归
- google-bigquery - 根据日期创建 BigQuery 表