r - R:提取属于同一组的行
问题描述
我正在尝试在控制台上打印属于同一组的所有行。但是,跳过属于唯一组的记录。
id1 id2 name dob sex group
1 1 2 0 1 0 1
2 1 3 0 0 1 2
3 1 4 1 1 1 2
4 2 3 0 0 0 3
5 2 4 0 1 0 4
6 3 4 0 0 1 4
4 2 3 0 0 0 4
5 2 4 0 1 0 5
6 3 4 0 0 1 6
结果 :
id1 id2 name dob sex group
2 1 3 0 0 1 2
3 1 4 1 1 1 2
id1 id2 name dob sex group
5 2 4 0 1 0 4
6 3 4 0 0 1 4
4 2 3 0 0 0 4
下面的方法非常适合获取非唯一的,但我需要一个 for 循环才能将其打印到屏幕上。
library(dplyr)
dfC %>%
group_by(group) %>%
filter(n()>1)
解决方案
我们可以group_walk
使用print
library(dplyr)
dfC %>%
group_by(grp = group) %>%
filter(n() > 1) %>%
group_walk(print)
# A tibble: 2 x 6
# id1 id2 name dob sex group
# <int> <int> <int> <int> <int> <int>
#1 1 3 0 0 1 2
#2 1 4 1 1 1 2
# A tibble: 3 x 6
# id1 id2 name dob sex group
# <int> <int> <int> <int> <int> <int>
#1 2 4 0 1 0 4
#2 3 4 0 0 1 4
#3 2 3 0 0 0 4
数据
dfC <- structure(list(id1 = c(1L, 1L, 1L, 2L, 2L, 3L, 2L, 2L, 3L), id2 = c(2L,
3L, 4L, 3L, 4L, 4L, 3L, 4L, 4L), name = c(0L, 0L, 1L, 0L, 0L,
0L, 0L, 0L, 0L), dob = c(1L, 0L, 1L, 0L, 1L, 0L, 0L, 1L, 0L),
sex = c(0L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 1L), group = c(1L,
2L, 2L, 3L, 4L, 4L, 4L, 5L, 6L)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9"))
推荐阅读
- javascript - 在 html 和 javascript 中创建表,但无法在日期列中使用 Datepicker
- random - 名称“randrange”未定义错误,密码生成器
- firebase - 使用时间戳使firestore文档“无效”的最简单方法
- c - 从 txt 文件(csv)填充二维数组的问题
- c++ - 如何将用户的数据输入二维数组并输出到用户c++
- postgresql - postgresql中STRPOS和POSITION的区别
- protocol-buffers - Protobuf 映射消息选项
- java - 返回数字的二进制表示中最右边的 1
- assembly - MIPS 程序的“主”标签未被识别
- javascript - how to hide span class but keep it's space