2016-06-22 6 views
5

위치를 기준으로 문자열에서 삭제 작업을 수행하는 기능을 찾고 있습니다.문자열의 특정 위치에서 문자를 삭제하는 기능을 사용할 수 있습니다.

예를 들어, 지정된 캐릭터가

string1 <- "hello stackoverflow" 

같은 가정하자, 나는 4, 10 및 18 위치를 삭제합니다.

선호 출력

"helo stakoverflw" 

나는 그런 기능의 존재에 대해 잘 모르겠습니다.

+0

안녕하세요 모두들 :

또한이 작업을 수행하는 함수를 작성할 수 있습니다. 저는 기존의 기능에 대해 매우 흥미가 있습니다. 한 줄짜리도 쓸 수 있습니다. 어쩌면 ** 나는 단 하나의 라이너를 찾고 있습니다. ** 여기에 혼란을 일으켰습니다. 그 죄송합니다. – user2100721

+0

기존 함수가 아니라 원하는 함수를 작성할 수 있습니까? –

+1

불행히도 기존 기능이없는 것 같습니다. R은 파이썬처럼 한 문자 요소의 벡터로 문자열을 저장하지 않습니다. – Frank

답변

3

이것은 나를 위해 일했습니다.

string1 <- "hello stackoverflow" 
paste((strsplit(string1, "")[[1]])[-c(4,10,18)],collapse="") 
[1] "helo stakoverflw" 

나는 문자의 벡터로 문자열을 분할 strsplit을 사용하고 문자열로 다시 함께만을 원하는 문자를 붙여.

delChar <- function(x,eliminate){ 
    paste((strsplit(x,"")[[1]])[-eliminate],collapse = "") 
} 

delChar(string1,c(4,10,18)) 
[1] "helo stakoverflw" 
+2

이 접근법을 사용하면 더 편리 할 것입니다 :'paste ((strsplit (string1, ""[[1])) [paste (string1, perl = TRUE) -c (4,10,18)], sep = "", collapse = "")'그래서 당신이 지우고 자하는 문자가 아닌 지우고 자하는 문자를 지정하십시오. –

+1

하하는 귀하의 의견이 게시 될 때 문자 그대로 그 권리를 변경했습니다. 'c (-3)'보다는'-c()'와 좋은 점이있다. –

+3

'paste ((strsplit (string1, ""[[1])) [c (-4, -10, -18)], collapse = "")'충분해야한다. 'sep'와'collapse' 둘 다. – Psidom

관련 문제