For循环可在R

时间:2019-06-11 12:08:50

标签: r for-loop

如果下面有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()函数,但是如果有不包含这些功能的解决方案,我根本不会介意。

1 个答案:

答案 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"