R中矩阵/数据帧循环的问题

时间:2019-12-14 21:25:24

标签: r loops matrix

我试图获取多年的资产负债表数据,并确定每个数据点每年的变化百分比

问题是我不知道如何处理第一年的数据,因为它没有百分比变化。

数据的结构如下

              2017       2018     2019  
NetIncome     123        156     197
COGS          34         32      36
ETC           23         35      32 

创建表以显示每年不尝试运行第一年数据的百分比变化的最佳方法是什么?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

我们可以通过不使用第一列,最后一列并使用prop.table来获取百分比的数据子集的差异来计算相邻年份之间的差异

cbind(`2017` = 0, prop.table(as.matrix(df1[-1] -df1[-length(df1)]), 1))

如果我们需要分开

cbind(`2017` = 0,(df1[-1] -df1[-length(df1)])/df1[-length(df1)])

数据

df1 <- structure(list(`2017` = c(123L, 34L, 23L), `2018` = c(156L, 32L, 
35L), `2019` = c(197L, 36L, 32L)), class = "data.frame", row.names = c("NetIncome", 
"COGS", "ETC"))