[r] 문자열 내 특정 문자 교체
Excel 의 찾기 및 바꾸기 기능 과 비슷한 벡터 내의 문자열에서 특정 문자를 제거하고 싶습니다 .
내가 시작하는 데이터는 다음과 같습니다.
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"))
1) 사용 gsub
group$group.no.e <- gsub("e", "", group$group)
2) 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"
답변
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"