R 每个子组的备用行中存在相同的差异
我有数据框,需要找出差异,但对于每一个备用行,差异应保持不变,因为要做的事情如下所示: 但我用过这个:R 每个子组的备用行中存在相同的差异,r,dplyr,row,difference,alternate,R,Dplyr,Row,Difference,Alternate,我有数据框,需要找出差异,但对于每一个备用行,差异应保持不变,因为要做的事情如下所示: 但我用过这个: things <- data.frame( category = c("A","B","A","B","A","B","A","B","A","B"), things2do = c("ball","ball","bat","bat","hockey","hockey","volley ball","volley ball","foos bal
things <- data.frame( category = c("A","B","A","B","A","B","A","B","A","B"),
things2do = c("ball","ball","bat","bat","hockey","hockey","volley ball","volley ball","foos ball","foos ball"),
number = c(12,5,4,1,0,2,2,0,0,2))
things %>%
mutate(diff = number - lead(number,order_by=things2do))
事物%
变异(差异=数量-领先(数量、顺序=事物2DO))
但这并没有什么帮助,因为我明白了:
我可以在这里得到一些帮助吗?库(tidyverse)
library(tidyverse)
things2 <- things %>%
spread(category, number) %>%
mutate(diff = B - A) %>%
gather(category, number, A:B) %>%
select(category, things2do, number, diff) %>%
arrange(things2do)
东西2%
价差(类别、数量)%>%
变异(差异=B-A)%>%
聚集(类别、编号、A:B)%>%
选择(类别、任务、数量、差异)%>%
安排(要做的事)
一种方法是通过things2do
对数据进行分组,然后进行迭代差分
library(dplyr)
things %>%
group_by(things2do) %>%
mutate(diff = diff(number))
谢谢只是根据指导原则进行了编辑。仅针对此示例数据,您可以执行:
group_by(things,things2do)%%>%mutate(difference=diff(number))
@jazzuro,这不起作用,因为您的方法给出了连续数字之间的差异。