Р: Как отделить вывод символов в цикле? - PullRequest
0 голосов
/ 18 марта 2010

Я игнорирую лучший способ склеить список строк, чтобы перейти в оператор SQL ... У меня проблемы с разделителем | печать в начале, когда я не хочу этого:

foo = "blah"
paste_all_together = NULL
for (n in 1:4) {
    paste_together =     paste(foo ,sep = "")
    paste_all_together = paste(paste_all_together, paste_together, sep = "|")
    }

> paste_all_together
[1] "|blah|blah|blah|blah"

Я просто хочу, чтобы он распечатал «бла | бла | бла | бла». Нужен ли мне вложенный цикл, или для этого лучше использовать итератор в R? Или, возможно, лучший способ ввода операторов SQL?

Ответы [ 3 ]

2 голосов
/ 19 марта 2010

Проблема на самом деле в первый раз, когда вы вызываете paste(paste_all_together,...) - она ​​вставляет пустую строку в "blah", помещая между ними |.

Здесь уже есть 2 ответа, которые лучше, чем я собираюсь предложить, но исправить ваш пример с минимальными операциями выглядело бы примерно так:

foo <- "blah"
all_together <- character(0)
for (n in 1:4) {
    all_together <- c(all_together, foo)
}
paste(all_together, collapse="|")
2 голосов
/ 18 марта 2010

Возможно, используйте опцию collapse:

foo = list('bee','bar','baz')
paste(foo,collapse='|')

выходы

"bee|bar|baz"
1 голос
/ 18 марта 2010
paste(rep(foo,4),collapse='|')

[1] "blah|blah|blah|blah"
...