0

我试图在 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)
}
4

1 回答 1

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)))
}
于 2013-09-03T16:55:25.690 回答