programing

문자열 내의 특정 문자 바꾸기

javamemo 2023. 7. 4. 21:39
반응형

문자열 내의 특정 문자 바꾸기

엑셀의 찾기바꾸기 기능과 유사하게 벡터 내 문자열에서 특정 문자를 제거하고 싶습니다.

다음은 제가 시작하는 데이터입니다.

group <- data.frame(c("12357e", "12575e", "197e18", "e18947")

첫 번째 열부터 시작합니다. 두 번째 열은 다음 열을 제거하여 생성하고 싶습니다.e의:

group       group.no.e
12357e      12357
12575e      12575
197e18      19718
e18947      18947

정규 표현과 기능을 사용하여gsub():

group <- c("12357e", "12575e", "197e18", "e18947")
group
[1] "12357e" "12575e" "197e18" "e18947"

gsub("e", "", group)
[1] "12357" "12575" "19718" "18947"

무엇을gsub여기서 하는 일은 각각의 발생을 대체하는 것입니다."e"빈 끈으로"".


?regexp또는gsub더 많은 도움이 필요합니다.

정규 표현은 친구입니다.

R> ## also adds missing ')' and sets column name
R> group<-data.frame(group=c("12357e", "12575e", "197e18", "e18947"))  )
R> group
   group
1 12357e
2 12575e
3 197e18
4 e18947

지금 사용gsub()가장 단순한 대체 패턴: 빈 문자열:

R> group$groupNoE <- gsub("e", "", group$group)
R> group
   group groupNoE
1 12357e    12357
2 12575e    12575
3 197e18    19718
4 e18947    18947
R> 

문자열을 교체하는 두 가지 방법을 요약합니다.

group<-data.frame(group=c("12357e", "12575e", "197e18", "e18947"))

사용gsub

group$group.no.e <- gsub("e", "", group$group)

사용stringr꾸러미

group$group.no.e <- str_replace_all(group$group, "e", "")

둘 다 욕구 출력을 생성합니다.

   group group.no.e
1 12357e      12357
2 12575e      12575
3 197e18      19718
4 e18947      18947

문자열 벡터에서 일부 문자를 바꾸려면 데이터 프레임을 작성할 필요가 없습니다.규칙적인 표현은 이미 @Andrie와 @Dirk Eddelbuettel에 의해 언급되었기 때문에 그것에 대한 좋은 선택입니다.

점과 같은 특수 문자를 바꾸려면 아래 예제와 같이 전체 정규식 구문을 사용해야 합니다.

ctr_names <- c("Czech.Republic","New.Zealand","Great.Britain")
gsub("[.]", " ", ctr_names)

이것은 생산할 것입니다.

[1] "Czech Republic" "New Zealand"    "Great Britain" 

stringi 패키지 사용:

require(stringi)

group<-data.frame(c("12357e", "12575e", "197e18", "e18947"))
stri_replace_all(group[,1], "", fixed="e")
[1] "12357" "12575" "19718" "18947"

사용할 수 있습니다.chartr또한:

group$group.no.e <- chartr("e", "", group$group)
> library(stringi)                
> group <- c('12357e', '12575e', '12575e', ' 197e18',  'e18947')              
> pattern <- "e"  
> replacement <-  ""  
> group <- str_replace(group, pattern, replacement)      
> group 
[1] "12357"  "12575"  "12575"  " 19718" "18947" 

언급URL : https://stackoverflow.com/questions/11936339/replace-specific-characters-within-strings

반응형