R 如何使数据帧中的行从右向左累加
我有一个矩阵R 如何使数据帧中的行从右向左累加,r,R,我有一个矩阵 > A= [ 1 2 4 > 2 3 1 > 3 1 2 ] 我想让每一行从右到左的结果累加如下: > A= [ 7 6 4 > 6 4 1 > 6 3 2 ] 我试图在中使用该解决方案,但它提供了一种添加矩阵的不同方法 有点神奇,但是: t(apply(A,1,function(x) rev(cumsum(rev(x))))) 是的 apply(A,1,FUN)将函数应用于矩阵的每一行 rev()
> A= [ 1 2 4
> 2 3 1
> 3 1 2 ]
我想让每一行从右到左的结果累加如下:
> A= [ 7 6 4
> 6 4 1
> 6 3 2 ]
我试图在中使用该解决方案,但它提供了一种添加矩阵的不同方法 有点神奇,但是:
t(apply(A,1,function(x) rev(cumsum(rev(x)))))
是的
将函数应用于矩阵的每一行apply(A,1,FUN)
rev()
- 最后一个
是转置结果所必需的,因为t()
总是按列返回其结果,正如(非常模糊地)此处所述(来自apply
的“值”部分):?apply
您在标题中提到了
data.frame
,有一种方法可以对data.frame使用Reduce
和rev
,以获得您想要的结果
A <- data.frame(c(1,2,3),c(2,3,1),c(4,1,2))
data.frame(rev(Reduce("+",rev(A),accumulate=TRUE)))
c.7..6..6. c.6..4..3. c.4..1..2.
1 7 6 4
2 6 4 1
3 6 3 2
A