2014-04-12 10 views
0

R의 매우 기본적인 질문이지만 아직 해결 방법이 명확하지 않습니다.문자 벡터를 개별 문자로 분할합니까? (붙여 넣기 또는 stringr :: str_c의 반대쪽)

문자의 벡터를 개별 문자, 즉 paste(..., sep='') 또는 stringr::str_c()의 반대 문자로 나누는 방법은 무엇입니까?

sapply(1:26, function(i) { substr("ABCDEFGHIJKLMNOPQRSTUVWXYZ",i,i) }) 
"A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" 

그것은 예를 들면, 그렇지 않으면 수행 할 수 있습니다 :이보다 투박한

아무것도 strsplit(), 또는 다른 무엇입니까?

+0

내 목적은 반복자위한 내용을 생성 하였다 :'가 sapply ITER ((1시 26분, 기능 (ⅰ) {SUBSTR ("ABCDEFGHIJKLMNOPQRSTUVWXYZ를 '= I, 난)}))'...'nextElem (it)' – smci

+0

@Henrik은 많이 감사하지만 이것은 좀 더 일반적인 것에 대한 예일뿐입니다. – smci

답변

5

예, strsplit입니다. strsplit은 목록을 반환하므로 unlist을 사용하여 문자열을 단일 문자 벡터로 강제 변형하거나 목록 인덱스를 사용하여 벡터에 액세스 할 수 있습니다. 이 경우 색인은 설명에 언급 된대로 [[1]]입니다.

> unlist(strsplit("ABCDEFGHIJKLMNOPQRSTUVWXYZ", split = "")) 
# [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" 
#[20] "T" "U" "V" "W" "X" "Y" "Z" 

OR

> strsplit("ABCDEFGHIJKLMNOPQRSTUVWXYZ", split = "")[[1]] 
# [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" 
#[20] "T" "U" "V" "W" "X" "Y" "Z" 
+7

아니면 마지막에'[[1]]'을 추가하면됩니다. – A5C1D2H2I1M1N2O1R2T1