我在R中遇到了很大的性能问题.我编写了一个迭代data.frame对象的函数.它只是添加一个新列data.frame并积累一些东西.(操作简单).将data.frame有大约850K行.我的电脑仍在工作(现在大约10小时),我不知道运行时间.
dayloop2 <- function(temp){
for (i in 1:nrow(temp)){
temp[i,10] <- i
if (i > 1) {
if ((temp[i,6] == temp[i-1,6]) & (temp[i,3] == temp[i-1,3])) {
temp[i,10] <- temp[i,9] + temp[i-1,10]
} else {
temp[i,10] <- temp[i,9]
}
} else {
temp[i,10] <- temp[i,9]
}
}
names(temp)[names(temp) == "V10"] <- "Kumm."
return(temp)
}
Run Code Online (Sandbox Code Playgroud)
有什么想法如何加快这个操作?
我是R的新手,似乎无法掌握如何调用之前的"自我"值,在这种情况下是前一个"b" b[-1].
b <- ( ( 1 / 14 ) * MyData$High + (( 13 / 14 )*b[-1]))
Run Code Online (Sandbox Code Playgroud)
显然我在那里的某个地方需要一个NA用于第一次计算,但我无法自己解决这个问题.
添加所寻求的结果应该是的例子(A = MyData $ High):
A b
1 5 NA
2 10 0.7142...
3 15 3.0393...
4 20 4.6079...
Run Code Online (Sandbox Code Playgroud)