我是R的初学者,所以我很难想到"R路"......
我有这个功能:
upOneRow <- function(table, column) {
for (i in 1:(nrow(table) - 1)) {
table[i, column] = table [i + 1, column]
}
return(table)
}
Run Code Online (Sandbox Code Playgroud)
这似乎很简单,并且不应该花那么长的时间来运行,但是在行数约为300k的数据帧上,运行所花费的时间是不合理的.什么是正确的方法来解决这个问题?
而不是循环,你可以尝试这样的事情:
n <- nrow(table)
table[(1:(n-1)), column] <- table[(2:n), column];
Run Code Online (Sandbox Code Playgroud)
矢量化是关键