r语言 - 将具有年份列的数据帧转换为时间序列数据,按观测值排序



我有以下data.frame,我想将其转换为2个独立的时间序列收入和成本的数据框架。

df1 = data.frame(year = c('2018','2019', '2020','2019','2020','2021'), 
company=c('x','x','x','y','y','z'),
revenue=c(45,78,13,89,48,70),
cost=c(100,120,130,140,160,164),
stringsAsFactors=FALSE)
df1
year company revenue cost
1 2018       x      45  100
2 2019       x      78  120
3 2020       x      13  130
4 2019       y      89  140
5 2020       y      48  160
6 2021       z      70  164

如果我想为revenue数据创建一个新的数据帧,数据按如下方式排列,并使用na来替换数据不可用的所有年份,我可以使用哪些代码来完成此操作?

2018    2019    2020   2021
1    x       45     78      13   n.a.
2    y     n.a.     89      48   n.a.
3    z     n.a.   n.a.    n.a.    70

与tidyverse…

df1 %>% filter(company == 'x') %>% pivot_wider(values_from = revenue, names_from = year)

如果您想同时获得收入和成本

library(tidyr)
df2 <- pivot_wider(df1, names_from = year, values_from = c(revenue,cost))

我想得到了你需要的。2-5为收入,6-9为成本。

相关内容

  • 没有找到相关文章

最新更新