我有一个data.frame100x100,我需要把它们当作自动扶梯.从第一列的第一个条目开始,然后继续将第二列的第一个条目添加到第一个条目的第二个条目,依此类推,直到最后一个sum的条目是最后一列的最后一行.把它看作对角矩阵如
d3 <- data.frame(a = c(rep(0.5,5),0,0), b = c(0,rep(0.3,5),0), e = c(0,0,rep(0.8,5)))
Run Code Online (Sandbox Code Playgroud)
可能有助于理解这个问题.我想总结像矩阵的行d3.
我试图创建一个小例子,但我无法创建一个简化作业的循环或函数.
我有这些数据:
d <- data.frame(a = rep(0.5,5), b = rep(0.3,5), e = rep(0.8,5))
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来创建一个带有条目的矢量:
d2 <- rep(NA)
d2[1] <- d$a[1]
d2[2] <- sum(d$a[2],d$b[1])
d2[3] <- sum(d$a[3],d$b[2],d$e[1])
d2[4] <- sum(d$a[4],d$b[3],d$e[2])
d2[5] <- sum(d$a[5],d$b[4],d$e[3])
d2[6] <- sum(d$b[5],d$e[4])
d2[7] <- d$e[5]
Run Code Online (Sandbox Code Playgroud)
等于c(0.5, 0.8, 1.6, 1.6, 1.6, 1.1, 0.8).
提前感谢您的帮助
你可以试试:
rowSums(
mapply(function(x,y) {
ret<-numeric(nrow(d)+ncol(d)-1)
ret[y:(y+length(x)-1)]<-x
ret},d,1:(length(d)))
)
Run Code Online (Sandbox Code Playgroud)