내가 하나 하나에 벡터의 요소 내의 모든 복수 (2 개 이상) 공백 문자를 축소하려고했다가 포함 된 문자 벡터, 문제는, gsub()
를 사용하여 예 : R 정규식 : NA 그리고
x1 <- c(" abc", "a b c ", "a b c")
gsub("\\s{2,}", " ", x1)
[1] " abc" "a b c " "a b c"
그러나 같은
벡터가NA
을 포함하는 즉시 대체가 실패 :
,682 :
x2 <- c(NA, " abc", "a b c ", "a b c")
gsub("\\s{2,}", " ", x2)
[1] NA " " " " " "
그러나, 하나는 펄과 같은 정규 표현식을 사용하는 경우 잘 작동
R의 정규 표현식이 그런 식으로 행동하는 이유에 대해 제안 된 사람이 있습니까? 도움이된다면 Linux x86-64에서 R 3.1.1을 사용하고 있습니다.
백 슬래시를 더 추가 했습니까? R에서는 매우 까다 롭습니다. 이런 종류의 표현을 인식하려면 일반적으로 세 개가 필요합니다. – Llopis
@Llopis 올바르지 않습니다. 정규식은 실제로'\ s'이며, 하나의 백 슬래시 앞에'\\ s '가옵니다. – jbaums
OS X에서도 확인되었습니다. 리터럴 스페이스 문자 (또는 스페이스/탭 문자 클래스)는 잘 동작하지만'\ s'와'[[: space :]] '는 동작을 나타냅니다. R에서 버그가 있다고 생각하고 있습니다. –