我想检索每个组的“倒数第二”数据。目前,代码如下,使用“group_modify”两次。有没有可用的函数?(如何简化当前代码)?谢谢!
- 所附图片中红色矩形中的预期结果。*
library(dplyr)
test_data <- data.frame(category=c("a","a","c","a","b","c","a","b","c"),
value=c(1.72,0.32,0.22,1.29,-0.49,0.61,1.24,0.58,0.26))
test_data %>% arrange(category ) %>%
group_by(category) %>%
group_modify(~tail(.x,2)) %>%
group_modify(~head(.x,1))
3条答案
按热度按时间sqxo8psd1#
我们可以使用
nth(value, -2)
,它给出了每个组的倒数第二个:3ks5zfa02#
您可以在每个组中提取
n() - 1
行。njthzxwz3#
如果一个列表输出是可接受的,那么它就可以工作: