小编Aff*_*ler的帖子

减去对应于 R 中某个 ID 的数据帧的每个部分的前一行中的值

假设我有一个包含三列的数据框:

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)

r dataframe

2
推荐指数
1
解决办法
2666
查看次数

将一列的唯一值转换为多列,其中包含另一列中的对应值

这是一个类似于我正在使用的示例数据框:

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 …

r data-manipulation dataframe

1
推荐指数
1
解决办法
567
查看次数

标签 统计

dataframe ×2

r ×2

data-manipulation ×1