2013-08-27 9 views
8

私はペーストで混乱していて、単純に連結していると思っていました。ペースト/折りたたみでR

whales <- c("C","D","C","D","D") 

quails <- c("D","D","D","D","D") 

results <-paste(whales, quails, collapse = '') 

「CD DD CD DD DD」の代わりに「C DD DC DD DD D」が返されるのはなぜですか?

また、なぜだろう

results <-paste(whales[1], quails[1], collapse = '') 

リターン

"CとD"?

スペース?

おかげで、 D

EDIT

OK、私は見ること

results <-paste(whales, quails, collapse = NULL, sep='') 

は、私が欲しいものを私を得るが、前のコードが機能しなかった理由の説明のだろうか?また、回答者にも感謝します。

+5

なぜダウン票でショートカットpaste0pasteにデフォルト値を使用してみ?これは正当な疑問であり、うまく構成されています。 –

答えて

20

最初の質問については、以下を試してください(これは、2文字を繰り返すことを選択するよりも説明的かもしれません)。に関し、我々は異なる値にsepcollapse引数を指定している

### "Desired" result: 
paste(whales, quails, sep = '', collapse = ' ') 

[1] "CD DD CD DD DD" 

注:あなたは本当に(その結果、「希望」を取得するために)何をしたいのか

### Note that R paste's together corresponding elements together... 
paste(c("A", "S", "D", "F"), 
     c("W", "X", "Y", "Z")) 

[1] "A W" "S X" "D Y" "F Z" 

### Note that with collapse, R converts the above 
    # result into a length 1 character vector. 
paste(c("A", "S", "D", "F"), 
     c("W", "X", "Y", "Z"), collapse = '') 

[1] "A WS XD YF Z" 

は以下のとおりです。あなたの2番目の質問。 sepは、各用語を文字列で区切ることができますが、collapseは結果全体を文字列で区切ることができます。

また
paste(whales, quails, collapse = '', sep = '') 

[1] "CDDDCDDDDD" 

は、sep = ''

paste0(whales, quails, collapse = '') 
関連する問題