汇总r中列的特定数据

时间:2013-09-03 16:44:57

标签: r loops sum

我试图在r中创建一个函数,让我将最后三行的数据汇总到一个新列中(即如果我看第4天=第3 + 2 + 1天)

这是我到目前为止所做的,但是它不起作用。

S3<- function(x){
res <- numeric(nrow(x))
for (i in 1:nrow(x)){    
res[i] <- i
if (i > 3) {             
  res[i] <- x[i-3,10]
} else {
  res[i] <- x[i,10]
}
}
x$PP3 <- res
return(x)
}

1 个答案:

答案 0 :(得分:0)

使用此:

x$PP3 <- x[,10] + c(0,head(x[,10],-1)) + c(0,0,head(x[,10],-2))

如果你想要一个功能:

S3 <- function(x, j=10){
    within(x, PP3 <- x[,j] + c(0,head(x[,j],-1)) + c(0,0,head(x[,j],-2)))
}