R 정규 표현식 : 전체 문자열 목록을보다 구체적인 정보로 바꿉니다.
문제
"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
.
설명
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])
.
참고 : 각 문자
에 대해이 중 하나가 필요합니다.제휴하지 않습니다 StackOverflow