R:数据帧操作

R:数据帧操作,r,dataframe,group-by,aggregate,data-manipulation,R,Dataframe,Group By,Aggregate,Data Manipulation,我创建了如下所示的数据帧 身份证件 存货盘点 年 A1 10 2000 A1 20 2000 A1 18 2000 A1 15 2001 A1 30 2001 A2 35 2002 A2 50 2001 A2 10 2002 A2 22 2002 A3 11 2001 A3 15 2001 A3 28 2000 这很直截了当。要使用这些冗长的列名,您必须引用它们,这可能是一个挑战 dat%>%集团成员(ID,年份)%>% 总结( `股票数量总和`=总和(`COUNT of STOCK`), `

我创建了如下所示的数据帧

身份证件 存货盘点 年 A1 10 2000 A1 20 2000 A1 18 2000 A1 15 2001 A1 30 2001 A2 35 2002 A2 50 2001 A2 10 2002 A2 22 2002 A3 11 2001 A3 15 2001 A3 28 2000
这很直截了当。要使用这些冗长的列名,您必须引用它们,这可能是一个挑战


dat%>%集团成员(ID,年份)%>%
总结(
`股票数量总和`=总和(`COUNT of STOCK`),
`自2020年起的年数(2020年)`=2020年-第一年
)%%>%选择(-YEAR)
输出:


  ID    `Sum of COUNT OF STOCK` `number of years from 2020 (2020-year)`
  <chr>                   <int>                                   <dbl>
1 A1                         48                                      20
2 A1                         45                                      19
3 A2                         50                                      19
4 A2                         67                                      18
5 A3                         28                                      20
6 A3                         26                                      19


ID`存量盘点之和'`自2020年起的年数(2020年)`
1 A1 48 20
2 A1 45 19
3 A2 50 19
4 A2 67 18
5 A3 28 20
6 A3 26 19
只需这样做

df %>% group_by(D, number_of_years = 2020 - YEAR) %>%
  summarise(Sum_of_stock = sum(COUNT_OF_STOCK))

# A tibble: 6 x 3
# Groups:   D [3]
  D     number_of_years Sum_of_stock
  <chr>           <dbl>        <int>
1 A1                 19           45
2 A1                 20           48
3 A2                 18           67
4 A2                 19           50
5 A3                 19           26
6 A3                 20           28
df%>%分组依据(D,年数=2020年)%>%
总结(股票总数=股票总数)
#一个tibble:6x3
#组别:D[3]
D年数股票总数
1 A1 19 45
2 A1 20 48
3 A2 18 67
4 A2 19 50
5 A3 19 26
6 A3 20 28
资料

df
df <- read.table(text = "D  COUNT_OF_STOCK  YEAR
A1  10  2000
A1  20  2000
A1  18  2000
A1  15  2001
A1  30  2001
A2  35  2002
A2  50  2001
A2  10  2002
A2  22  2002
A3  11  2001
A3  15  2001
A3  28  2000", header = T)