이 문자열의 첫 번째와 두 번째 숫자를 추출하여 별도의 변수에 저장하려고합니다.정규식을 사용하여 R의 문자열에서 값 추출
(User20,10.25)
사용자 번호와 그 값을 얻는 방법을 알 수 없습니다.
내가 지금까지 해왔 던 것은 이것이지만, 나머지 문자열을 제거하고 숫자 만 얻는 방법을 모르겠다. 당신은 sub
으로 strsplit
을 사용할 수 있습니다
gsub("\\(User", "", string)
이 문자열의 첫 번째와 두 번째 숫자를 추출하여 별도의 변수에 저장하려고합니다.정규식을 사용하여 R의 문자열에서 값 추출
(User20,10.25)
사용자 번호와 그 값을 얻는 방법을 알 수 없습니다.
내가 지금까지 해왔 던 것은 이것이지만, 나머지 문자열을 제거하고 숫자 만 얻는 방법을 모르겠다. 당신은 sub
으로 strsplit
을 사용할 수 있습니다
gsub("\\(User", "", string)
str1 <- '(User20,10.25)'
scan(text=gsub('[^0-9.-]+', ' ', str1),quiet=TRUE)
#[1] 20.00 10.25
이 경우 문자열이 사용
str2 <- '(User20-ht,-10.25)'
scan(text=gsub('-(?=[^0-9])|[^0-9.-]+', " ", str2, perl=TRUE), quiet=TRUE)
#[1] 20.00 -10.25
또는
library(stringr)
str_extract_all(str1, '[0-9.-]+')[[1]]
#[1] "20" "10.25"
또는이다 시도 stringi
library(stringi)
stri_extract_all_regex(str1, '[0-9.-]+')[[1]]
#[1] "20" "10.25"
...
> sub('\\(User|\\)', '', strsplit(x, ',')[[1]])
[1] "20" "10.25"
아마 당신이 대신 원하는 상황에 맞게하는 것이 더 쉽습니다.
> regmatches(x, gregexpr('[0-9.]+', x))[[1]]
[1] "20" "10.25"
Tyler Rinker의 "qdapRegex" package에는 이러한 종류의 물건에 유용한 몇 가지 기능이 있습니다. 이 경우
, 당신은 가장 가능성 rm_number
에 관심이있을 것입니다 :
library(qdapRegex)
rm_number(x, extract = TRUE)
# [[1]]
# [1] "20" "10.25"
는 IS 다음 한 가지 방법 :
[^,\)\([A-Z]]
은'scan'의 대답은이 숫자를 가지고 특히 때문에, 좋은 산출. – thelatemail
@Richard Scriven 감사합니다. 그런 다음 그것을 제거하겠습니다. – akrun
좋은 옵션. +1. 유일한 변경 사항은 음수의 가능성을 포함하는 것입니다 ('[0-9.] + '를''[0-9 .-] +''로 변경). – A5C1D2H2I1M1N2O1R2T1