0
입력을 고려하십시오 c("foo 1", "bar 2", "baz")
. 이것을 c(1,2,NA)
(기본적으로 각 문자열에서 숫자를 추출하거나 존재하지 않는 경우 NA
)으로 바꾸고 싶습니다. 첫 번째 패스는 다음과 같습니다.R 공백을 남기면서 번호 추출
funNums = as.numeric(
regmatches(x$Fun,
regexpr('\\d+', x$Fun, perl = T)))
여기서 x$Fun
은 입력 벡터입니다. 이 출력은 내가 c(1,2)
인데 regmatches
은 일치하지 않는 것을 버리기 때문에 출력됩니다. NA
을 포함하도록하려면 어떻게해야합니까?
는 "의 잠재적 인 문제를 방지하려면 1을 넘기면 2가된다. 12 "가된다.''([^ [: digit :]] *)''as.numeric'은 후미와 선행 공백을 무시하기 때문에 공백을 남긴 패턴을 사용할 수있다. –
@Dwin - 매우 영리합니다. ''1 ~ 2 ''는 'NA'가된다. –
그리고 더 생각하면 나는 괄호가 필요하다는 것을 의심합니다. –