我想找到一种方法来计算下面矩阵中每列的第一行和最后一行的百分比变化。我试过玩for循环和尾巴(df [i],1)/ head(df [i],1)-1但我似乎无法正确使用它。
为虚拟问题道歉,但我在这里感到非常沮丧..
df=matrix(c(3,9,3,4,3,9,3,5,3,8,8,8),4,3)
df
### return list/vector of 3 elements where values are 4/3 -1, 5/3 -1, and 8/3 -1 ....the returns of the last over first
答案 0 :(得分:0)
尝试apply
:
> df <- matrix(c(3,9,3,4,3,9,3,5,3,8,8,8),4,3)
> df
[,1] [,2] [,3]
[1,] 3 3 3
[2,] 9 9 8
[3,] 3 3 8
[4,] 4 5 8
> apply(df, 2, function(col) (col[nrow(df)]/col[1]) - 1)
[1] 0.3333333 0.6666667 1.6666667