2014-12-26 3 views
1

에서 선도적 인 백 슬래시를 제거하면 문자열입니다문자열 R 여기

How to escape a backslash in R?

How to escape backslashes in R string

:

> raw.data[27834,1] 
[1] "\xff$GPGGA" 

나는 다음과 같은 두 가지 질문 조언을 시도,하지만 운 누구든지 도움이 될 수있는 위의 질문과 다른 해결책이 있습니까? 이상적인 해결책은 "\xff" 부분을 제거하는 것이지만 문자 조합은 제거하십시오.

+2

아마도'GSUB를 ('. * ([^ -Za-z]. *) ','\\ 1 ','\ xff $ GPGGA ') # [1] "$ GPGGA"\ – akrun

+0

감사합니다. 이와 같은 방법으로 문자를 지정하는 추가 예제가있는 설명서는 무엇입니까? – Stu

+0

테스트 할 수 있도록 원래 데이터 세트의 예제, 패턴을 제공하십시오. – akrun

답변

2

해당 문자열에는 백 슬래시가 없습니다. 표시된 백 슬래시는 이스케이프 마커입니다. "특별 상황"의 입력 및 표시에 대한이 기능과 기타 기능은 ?Quotes 도움말 페이지에 설명되어 있습니다. 제거에 대해서는 하나의 정규식 대신 타원형 접근법을 사용했습니다. 여기에 \ff이 최초의 "문자"이기 때문에 실제로 성공 일부만 .... 다른 방법의 커플과는 R 문자로 정말 법적 아니다 : 나는 정규식 이유를 생각

s <- "\xff$GPGGA" 
strsplit(s, "") 
#[[1]] 
#[1] NA 

Warning message: 
In strsplit(s, "") : input string 1 is invalid in this locale 

substr(s, 1,1) 
#Error in substr(s, 1, 1) : invalid multibyte string at '<ff>$GP<47>GA' 
gsub('.*([^A-Za-z].*)', '\\1',"\xff$GPGGA")#[1] 
#[1] "$GPGGA" 
?Quotes 
gsub('\xff', '',"\xff$GPGGA")#[1] 
#[1] "$GPGGA" 

함수는 그 문자열에서 질식하지 않는다. 정규식은 실제로 시스템 중재 된 프로세스이다. 반면에 strsplitsubstr은 내부 R 함수이다.

@RichardScriven은 예제를 게시하고 복제하려고 시도했지만 표시되는 문자에 대한 매핑이 시스템마다 다름을 보여주는 또 다른 예제를 얻습니다. 나는 OSX 10.10.1 (요세미티)>에있어

cat('\xff') 
ˇ 

는 (나는 octothorpe (#) 내가 정상적으로에서와 있음을 떠났다.)

+1

이 지점은'cat ("\ xff")'()의 출력에 의해 추가로 지원 될 수 있습니다. –

+0

니스. 이제는 모두 의미가 있습니다. – Stu