我想优化我的R代码,我已经开始替换使用函数等实现“快速和肮脏”的循环。现在我已经到了一种情况,我相信应用功能会很方便。尽管如此,我无法将头围住。用apply()替换for-loop?
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函数的主要例子。但我仍然无法实现它的工作。有任何想法吗?
编辑:我已经添加了一个工作示例。
您的预期成果是什么? – 2014-10-30 17:15:55
你是'rbind'函数。这段代码没有意义。 – flodel 2014-10-30 17:17:45
你可以发布'my.frame'的一些数据,以便我们更好地了解你正在做什么? – Stedy 2014-10-30 17:22:29