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