R의 문자열에서 여러 변수를 추출하는 데 어려움을 겪고 있습니다.
열은 다음과 같습니다.
7 digit identifier
_ NAME
: 4 digit value
- 4 digit value
- 4 digit value
- location1
- location2
: 7-digit identifier
_ junk
_ junk
_3 digit value with junk attached
예를 들면 :
1234567_NAME:0011-1234-0176-town-car:1234567_000001_original_010qyz
다음과 같은 새 열이 필요합니다.
7 자리 식별자 ( "1234567")
이름
str_sub()
문자열의 일부 길이가 가변적이기 때문에 작동하지 않습니다.
시도 gsub
했지만 일부 특수 문자가 여러 번 반복되기 때문에 (예 : ": '및"- ") 문자열의 잘 정의 된 부분을 추출하는 데 사용할 수 없습니다.
긴 정규 표현식을 피하기 위해 한 가지 옵션은 str_split_fixed
with [_:-]
를 구분자로 사용하여 열을 행렬로 분할하고 필요하지 않은 열을 제거하고 마지막 열에서 숫자 값을 추출하는 것입니다.
s <- "1234567_NAME:0011-1234-0176-town-car:1234567_000001_original_010qyz"
ss <- c(s,s,s)
library(stringr)
mat <- str_split_fixed(ss, "[_:-]", 11)[,-c(9, 10)]
mat
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
#[1,] "1234567" "NAME" "0011" "1234" "0176" "town" "car" "1234567" "010qyz"
#[2,] "1234567" "NAME" "0011" "1234" "0176" "town" "car" "1234567" "010qyz"
#[3,] "1234567" "NAME" "0011" "1234" "0176" "town" "car" "1234567" "010qyz"
mat[,9] <- sub("(\\d{3}).*", "\\1", mat[,9])
mat
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
#[1,] "1234567" "NAME" "0011" "1234" "0176" "town" "car" "1234567" "010"
#[2,] "1234567" "NAME" "0011" "1234" "0176" "town" "car" "1234567" "010"
#[3,] "1234567" "NAME" "0011" "1234" "0176" "town" "car" "1234567" "010"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다