获取R中每个组的最后一行
我有一些结构类似的数据:获取R中每个组的最后一行,r,dataframe,dplyr,R,Dataframe,Dplyr,我有一些结构类似的数据: 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)) 我理解为什么这个代码不起作用,但我正在寻找dplyr方法来获取每个唯一ID 预期成果: ID NUM VAL <fct <db
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))
我理解为什么这个代码不起作用,但我正在寻找dplyr
方法来获取每个唯一ID
预期成果:
ID NUM VAL
<fct <dbl> <dbl>
1 A 2 0
2 B 4 1
3 C 9 0
ID NUM VAL
您可以尝试:
a %>%
group_by(ID) %>%
arrange(NUM) %>%
slice(n())
您可以尝试:
a %>%
group_by(ID) %>%
arrange(NUM) %>%
slice(n())
tail()
返回子可附加对象的最后6项。使用aggregate()
时,FUN
参数的参数会在函数之后立即使用逗号传递;这里的1
指的是n=1
,它告诉tail()
只返回最后一项
aggregate(a[, c('NUM', 'VAL')], list(a$ID), tail, 1)
# Group.1 NUM VAL
# 1 A 2 0
# 2 B 3 0
# 3 C 9 0
tail()
返回子可附加对象的最后6项。使用aggregate()
时,FUN
参数的参数会在函数之后立即使用逗号传递;这里的1
指的是n=1
,它告诉tail()
只返回最后一项
aggregate(a[, c('NUM', 'VAL')], list(a$ID), tail, 1)
# Group.1 NUM VAL
# 1 A 2 0
# 2 B 3 0
# 3 C 9 0
您可以使用top\n
。(分组已按ID
排序,无需按NUM
排序,因为只有1个值)
库(dplyr)
a%>%
分组依据(ID)%>%
顶部(1,数量)
##tibble:3 x 3
##组:ID[3]
#ID NUM VAL
#
#1A20
#2 B 4 1
#3 C 9 0
您可以使用top\n
。(分组已按ID
排序,无需按NUM
排序,因为只有1个值)
库(dplyr)
a%>%
分组依据(ID)%>%
顶部(1,数量)
##tibble:3 x 3
##组:ID[3]
#ID NUM VAL
#
#1A20
#2 B 4 1
#3 C 9 0
一个dplyr
选项可以是:
a %>%
arrange(ID, NUM) %>%
group_by(ID) %>%
summarise_all(last)
ID NUM VAL
<fct> <dbl> <dbl>
1 A 2. 0.
2 B 4. 1.
3 C 9. 0.
一个dplyr
选项可以是:
a %>%
arrange(ID, NUM) %>%
group_by(ID) %>%
summarise_all(last)
ID NUM VAL
<fct> <dbl> <dbl>
1 A 2. 0.
2 B 4. 1.
3 C 9. 0.
这将有助于我们解释它的作用,以及它解决老年退休金问题的原因。这将有助于我们解释它的作用,以及它解决老年退休金问题的原因。