假设我有一个包含三列的数据框:
df<-data.frame(ID=c(101,101,101,102,102,102,102,104,104),
Year=c(2005,2006,2007,1998,1999,2000,2001,2012,2013),
AnnualSpending=c(94.50,87.63,44.95,65.37,44.22,25.64,125.78,250.87,100))
ID Year AnnualSpending
1 101 2005 94.50
2 101 2006 87.63
3 101 2007 44.95
4 102 1998 65.37
5 102 1999 44.22
6 102 2000 25.64
7 102 2001 125.78
8 104 2012 250.87
9 104 2013 100.00
Run Code Online (Sandbox Code Playgroud)
如何减去AnnualSpending 的先前值并将结果添加到新列,以便与每个ID 对应的第一行始终为0?
changeFromPrevious
0
-6.87
-42.68
0
-21.15
-18.58
100.14
0
-150.87
Run Code Online (Sandbox Code Playgroud) 这是一个类似于我正在使用的示例数据框:
set.seed(74.3)
df<-data.frame(ID=sample(c(1000:1004),size=20,replace=T),
Fruit=sample(c("Apple","Banana","Pear","Orange","Plum"),size=20,replace=T))
library(dplyr)
df <- df %>%
group_by(ID,Fruit) %>%
summarise(n=n())
ID Fruit n
(int) (fctr) (int)
1 1000 Banana 1
2 1000 Orange 3
3 1000 Pear 1
4 1001 Banana 1
5 1001 Plum 2
6 1002 Banana 1
7 1003 Banana 1
8 1003 Orange 2
9 1003 Pear 1
10 1003 Plum 1
11 1004 Apple 2
12 1004 Banana 2
13 1004 Orange 1
14 1004 Pear 1
Run Code Online (Sandbox Code Playgroud)
如何转置 Fruit 和 n 列并对 ID …