使用R的sapply来附加字符串

时间:2018-03-29 09:13:58

标签: r loops sapply

我想要做的基本上是这样的:

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的原始值而不是前一次迭代的输出),但我不知道如何更改它以便我得到输出从上面的代码。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

你不能只做c(re, words)吗?这给我的循环效果与我相同?