답변:
정규 표현식과 함수로 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
.
fixed=TRUE
R이 정규식을 사용하지 못하게하여보다 유연한 패턴 일치를 허용하지만 계산 시간이 걸립니다. 필요한 모든 것이 단일 상수 문자열 "e"를 제거하는 것이라면 필요하지 않습니다.
sub("e", "", group)
같은 결과를 저장?
e
각 요소에 발견을
정규식은 친구입니다.
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>
require(stringr);group$groupNoE <- str_replace(group$group, "e", "")
str_replace
wraps sub
이므로 처음 나타나는 패턴 만 대체합니다. str_replace_all
와 동일한 동작을 원하면 사용해야 합니다 gsub
.
문자열을 바꾸는 두 가지 방법을 요약하면 다음과 같습니다.
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"
gsub("\\.", " ", ctr_names)
fixed = TRUE
이것을 더 빨리 만들 것입니다.