Для цикла, чтобы вставить увеличивающееся количество строк в R - PullRequest
0 голосов
/ 11 июня 2019

Если у меня есть символьный вектор 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 Ответ

1 голос
/ 11 июня 2019

Вы можете использовать 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...