2011-08-29 5 views
2

나는 split 메소드를 시도하고 2 개의 요소 만 포함하는 문자열의 두 번째 요소를 갖고 싶습니다.R에서 seperator를 사용하지 않고 문자열을 분할하는 방법

string= "AC" 

결과는 첫 번째 문자 ("A") 후 분할, 내가 얻을 shouldbe 것을 :

res= [,1] [,2] 
    [1,] "A" "C" 

내가 그것을 tryed 문자열의 크기는 2

예입니다 분할,하지만 첫 번째 요소 후 분할하는 방법을 모르겠다 ??

답변

2

split은 이러한 종류의 문자열 조작에 사용되지 않습니다. 당신은 fixed = TRUE을 필요로하지 않을 수 있습니다

strsplit(string,"",fixed = TRUE) 

,하지만 정규 표현식을 회피하는 경향이 광산의 습관 : 당신이 찾고있는 귀하의 경우에는이 같은 것을 사용되는 strsplit이다. 결과가 행렬과 같아지기를 원하는 것 같습니다.

strsplit(string,"",fixed = TRUE)[[1]] 

다음 matrix에 결과를 전달합니다 : 당신이 뭔가를 할 것입니다, 그래서 strsplit는 목록을 반환합니다.

5

strsplit() (귀하의 질문을 이해하는 경우) 원하는대로 할 수 있습니다. 문자열을 요소로 분리하려면 ""으로 분할해야합니다. , 이것은

> sstrs 
[[1]] 
[1] "A" "C" 

[[2]] 
[1] "A" "C" 

[[3]] 
[1] "A" "C" 

생산하는 세 개의 문자열

sstrs <- strsplit(strs, "") 

의 각 분할 다음

strs <- rep("AC", 3) ## your string repeated 3 times 

: 다음은 문자열의 벡터에 당신이 원하는 일을하는 방법을 보여주는 예입니다 목록에서 lapply() 또는 sapply()으로 처리 할 수 ​​있습니다. 두 번째 요소를 선택하려면 sstrs의 각 요소를 하위 집합으로 묶어야합니다.

sapply(sstrs, `[`, 2) 

생산 :

> sapply(sstrs, `[`, 2) 
[1] "C" "C" "C" 

을 당신이 가진 모든 후, 제공

strsplit("AC", "")[[1]][2] 

하나의 문자열 인 경우이 fo를 우리는 [ 기능을 적용

> strsplit("AC", "")[[1]][2] 
[1] "C" 
0

항상 두 개의 문자 문자열 (all(nchar(x)==2)하여 확인) 그리고 당신은 당신이 sub 또는 substr 사용할 수있는 유일한 두 번째 원하는 :

x <- c("ab", "12") 
sub(".", "", x) 
# [1] "b" "2" 
substr(x, 2, 2) 
# [1] "b" "2" 
+0

감사 모든 도움을 많이! – Hans

관련 문제