【发布时间】:2014-10-30 17:09:15
【问题描述】:
我正在尝试优化我的 R 代码,我已经开始用函数等替换已经实现“快速而肮脏”的循环。我现在已经到了一种情况,我相信 apply-function 会很方便。不过,我无法绕开它。
a <- c(10,20,15,43,76,41,25,46)
c <- c(2,5,8,3,6,1,5,6)
myframe <- data.frame(a,c)
newframe <-vector(length=3)
constant <- data.frame(a,c,a,a,a,a,a,a,a,a,a,a,c)
a.function <- function(frame){
newframe <- frame*22
return(newframe)}
result <- matrix(nrow=nrow(myframe),ncol=3)
for(i in 1:nrow(myframe)){
newframe <- a.function(myframe[i,])
newframe[ncol(myframe)+1] = i
newframe[ncol(myframe)+2] = constant[i,9]
#more columns added
newframe <- rbind(result,newframe)
}
我已经尝试尽可能减少循环,希望它仍然可以被理解。 遍历数据帧的行应该是使用 for 函数的主要示例。我仍然无法让它工作。有什么想法吗?
编辑:我添加了一个工作示例。
【问题讨论】:
-
你的预期结果是什么?
-
你是
rbind-ing 函数。这段代码没有意义。 -
您能否发布来自
my.frame的一些数据,以便我们更好地了解您想要做什么? -
我们无法帮助您优化无法运行的代码。你有语法错误和未定义的对象。
-
对不起。我现在添加了一个工作示例。我希望这会有所帮助...