与这个问题类似,我想选择每个组的最后一行并为其分配一个值。
a <- data.frame("ID" = c("A", "A", "B", "B", "C", "C"),
"NUM" = c(1, 2, 4, 3, 6, 9),
"VAL" = c(1, 0, 1, 0, 1, 0))
ID NUM VAL
A 1 1
A 2 0
B 4 1
B 3 0
C 6 1
C 9 0
我想要的输出:
ID NUM VAL end.spell
A 1 1 0
A 2 0 1
B 4 1 0
B 3 0 1
C 6 1 0
C 9 0 1
我该怎么做呢?任何帮助表示赞赏。
使用
group_by()
fromdplyr
,您可以识别行号与该组的行数相同的情况,并为该观察给出 1,否则为 0。创建于 2024-01-22,使用reprex v2.0.2
确定组
length
并存储在 中len
,创建与对应的长度和元素数量integer
的空值向量。由ID * 在ID上完成。len
replace
len
1L
ave
数据:
这是使用的另一个选项
last()
:基本 R 实现:
和 data.table 实现: