R 정규 표현식 : 전체 문자열 목록을보다 구체적인 정보로 바꿉니다.

StackOverflow https://stackoverflow.com//questions/23048595

  •  21-12-2019
  •  | 
  •  

문제

"Q7", "Q2" 등의 요소가있는 범주화 된 변수가있는 데이터가있는 경우 "7 Queen", "2 Queen" 등으로 어떻게 교체합니까?

도움이 되었습니까?

해결책

스타터의 경우 이미 시도한 코드에 대한 코드도 포함하는 경우에 가장 많이 묻는 것을 최대한 활용할 수 있습니다.그게 ...

큰 데이터 세트에 대해이 문제를 해결할 수있는 가장 효율적인 방법이 아니라이 두 가지 방법이 예제에서 잘 작동하는 것 같습니다.example(strsplit)는 우리가 사용할 수있는 멋진 문자열 기능이 있습니다.

> strReverse <- function(x)
      sapply(lapply(strsplit(x, NULL), rev), paste, collapse = "")

> strg <- c("Q7", "Q2")
> GS <- gsub("Q", strReverse(" Queen"), strg)
> strReverse(GS)
[1] "7 Queen" "2 Queen"
.

다른 방법은 paste

를 사용하는 것입니다.
> S <- paste0(strReverse(strg), "ueen")
> gsub("Q", " Q", S)
[1] "7 Queen" "2 Queen"
.

다른 팁

regex

(Q)(\d)
.

regex

교체
$2 Queen
.

정규 표현식 시각화

Debuggex demo

설명

1st Capturing group (Q)
    Q matches the character Q literally (case insensitive)
2nd Capturing group (\d)
    \d match a digit [0-9]
g modifier: global. All matches (don't return on first match)
i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])
.

참고 : 각 문자

에 대해이 중 하나가 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top