2010-03-18 54 views
0

我對將字符串列表粘貼到一起以進入SQL語句的最佳方法是空白的......我遇到了分隔條問題|在我不想要的時候開始打印:R:如何分離循環中的字符輸出?

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" 

我只是想讓它打印出「blah | blah | blah | blah」。我是否需要一個嵌套循環,或者在R中有更好的傳播器嗎?或者更好的方式來輸入SQL語句?

回答

2

也許使用collapse選項:

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

產生

"bee|bar|baz" 
1
paste(rep(foo,4),collapse='|') 

[1] "blah|blah|blah|blah" 
+0

謝謝,但字符串是不同的,所以〜unutbu的回答最合適 – John 2010-03-18 21:16:29

+0

@John你的問題和示例代碼表明字符串是相同的。下次您可以提供所有有問題的信息。 – Marek 2010-03-18 22:13:46

+0

是的,你是對的。 – John 2010-03-19 20:15:24

2

這個問題實際上是你第一次叫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="|") 
+0

啊太棒了,就這樣解釋吧! – John 2010-03-19 20:16:17

+0

實際上,它帶有或不帶NULL的結果相同,不同之處在於for循環之外的粘貼函數的位置。韓國社交協會。 – John 2010-03-19 21:38:12

+0

謝謝約翰 - 我實際上意識到,雖然我發佈,但我忘了改變我的第一段。 =)現在改變。 – 2010-03-22 14:10:15