我想按id
筛选每个x
行,但是每个id
的x
不同。
示例数据集:
df <- data.frame(id = c('P1', 'P1', 'P1', 'P1', 'P2', 'P2', 'P2',
'P2', 'P3', 'P3'),
points = c(56, 94, 17, 57, 55, 15, 37, 44, 55, 32))
以下代码和数据来源于此处。
df %>%
group_by(id) %>%
filter(row_number() %in% c(1, 2))
这将为每个id过滤前两行。目前为止都好。
但我想根据以下向量中存储的值,为每个id过滤不同数量的行。
nrowtofilter <- c(3, 2, 1)
因此,我想要过滤P1
的3行,P2
的2行以及P3
的1行。
但是当我执行时
df %>%
group_by(id) %>%
filter(row_number() %in% nrowtofilter)
我提取每个ID的前3行。
如何根据 nrowtofilter
过滤 id
?