我想要做的基本上是这样的:
words<-c("hello","what","how")
re<-c("I","say")
for(x in words){
re<-c(re,x)
}
print(re)
[1] "I" "say" "hello" "what" "how"
但是,我想用sapply替换循环(因为我真正想要做的是更复杂的事情需要永远,并且我想在我获得函数后切换到sapply的并行版本做我想做的事。)
但是,我无法弄清楚如何用sapply实现这个循环。我试过的是:
testfun<-function(x,res){
res<-c(res,x)
return(res)
}
words<-c("hello","what","how")
re<-c("I","say")
re<-sapply(words,testfun,res=re)
print(re)
hello what how
[1,] "I" "I" "I"
[2,] "say" "say" "say"
[3,] "hello" "what" "how"
我可以看到为什么会发生这种情况(它每次都将函数应用于re的原始值而不是前一次迭代的输出),但我不知道如何更改它以便我得到输出从上面的代码。
有什么想法吗?谢谢!
答案 0 :(得分:0)
你不能只做c(re, words)
吗?这给我的循环效果与我相同?