큰 데이터 프레임이 있습니다. 샘플 데이터 :
> df <- data.frame(MAKE = c('FORD','FORD','FORD','BMW','BMW'),
+ MODEL = c('ECO SPORT','ECO SPORT','ECO SPORT','3 SERIES','5 SERIES'),
+ VARIANT = c('ECOSPORT 1.0','ECOSPORT 1.5','ECOSPORT 1.5','E90','5 SERIES F(10)'),
stringsAsFactors = 0)
>
> df
MAKE MODEL VARIANT
1 FORD ECO SPORT ECOSPORT 1.0
2 FORD ECO SPORT ECOSPORT 1.5
3 FORD ECO SPORT ECOSPORT 1.5
4 BMW 3 SERIES E90
5 BMW 5 SERIES 5 SERIES F(10)
>
"MODEL"열에있는 "VARIANT"열의 문자열을 찾아 제거해야합니다. 처음에는 아래 명령을 사용하여 먼저 행을 식별하려고 시도했지만 작동하지 않습니다.
> df[df$MODEL %in% df$VARIANT,]
[1] MAKE MODEL VARIANT
<0 rows> (or 0-length row.names)
>
누구든지 같은 일을 수행하는 방법을 알려줄 수 있습니까? 예상 출력 :
> df
MAKE MODEL VARIANT
1 FORD ECO SPORT 1.0
2 FORD ECO SPORT 1.5
3 FORD ECO SPORT 1.5
4 BMW 3 SERIES E90
5 BMW 5 SERIES F(10)
>
우리는 사용할 수 있습니다 str_remove
library(dplyr)
library(stringr)
df %>%
mutate_if(is.factor, as.character) %>%
mutate(VARIANT = str_remove_all(VARIANT,
str_remove(MODEL, '(?<=[A-Z]) (?=[A-Z])')))
# MAKE MODEL VARIANT
#1 FORD ECO SPORT 1.0
#2 FORD ECO SPORT 1.5
#3 FORD ECO SPORT 1.5
#4 BMW 3 SERIES E90
#5 BMW 5 SERIES F(10)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다