我正在尝试在控制台上打印属于同一组的所有行。 但是,请跳过属于唯一组的记录。
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)
答案 0 :(得分: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"))