如果下面有numbers
字符向量,如何(大概使用for循环?)将字符串粘贴到一系列句子中,其中使用的字符串数取决于循环的迭代次数?最终,我想要的输出应该是这样的,第一句话是“一”,第二句话是“一和二”,第三句话是“一和二和三”,依此类推。具体细节并不重要,我就在我可以使用通用技术在R内实现类似功能之后。
numbers <- c("one", "two", "three", "four")
示例所需的输出:
> sentences[1]
"one"
> sentences[2]
"one and two"
> sentences[3]
"one and two and three"
> sentences[4]
"one and two and three and four"
我已经考虑了好一阵子,但是我还没有想办法实现这一目标。我假设一个解决方案将使用某种for循环,并且可能使用paste()
函数,但是如果有不包含这些功能的解决方案,我根本不会介意。
答案 0 :(得分:1)
您可以使用Reduce
numbers <- c("one", "two", "three", "four")
Reduce(function(x,y) paste(x,y, sep=" and "), numbers, accumulate=TRUE)
#[1] "one" "one and two"
#[3] "one and two and three" "one and two and three and four"
或者如果您之间不需要and
Reduce(paste, numbers, accumulate = T)
#[1] "one" "one two" "one two three"
#[4] "one two three four"