2016-08-25 5 views
0

다른 언어에서는이 문제의 해결책을 보았지만 R에서는 볼 수 없었습니다. 다른 url을 포함하는 url을 만드는 간단한 API 호출이 있습니다. 그런 뭔가 :백 슬래시 문제 (URL url)

paste0('http://www.server.com/select?q="',url,'"&sort=likes+desc') 

문제는 내가 url로 인쇄 할 때 그것은 나를 준다

url = "http://www.someotherserver.com/something/pic.jpg" 

되는 URL을 붙여 넣을 때 :

"http://www.server.com/select?q=\"http://www.someotherserver.com/something/pic.jpg\"&sort=likes+desc" 

GSUB, 문자열을하고 시도, 파일에 저장하지만 아무것도 작동하지 않는 것 같습니다. q = 및 url 뒤에 이러한 역 슬래시를 제거하는 방법은 무엇입니까?

답변

3

코드에 문제가 없습니다. 그것은 문자열을 백 슬래시에만 " 문자열을 종료하지 않음을 표시하는 print 기능에 의해 삽입

http://www.server.com/select?q="http://www.someotherserver.com/something/pic.jpg"&sort=likes+desc 

을 생산하지만, 문자열의 일부입니다.

두 번째 경우

> "abc" 
[1] "abc" 
> "abc \"def\"" 
[1] "abc \"def\"" 
> cat("abc \"def\"\n") 
abc "def" 

비교, 같은 당신이 그것을에 입력 한 문자열의 문자열 표현을 인쇄합니다. 그러나 이것은 실제 문자열이 아닙니다. cat()을 사용하여 "원시"문자열을 볼 수 있습니다.

또한 'abd "def"'"abc \"def\"" 문자열이 동일합니다. 이들은 동일한 문자열을 입력하는 두 가지 다른 방법입니다. 작은 따옴표를 사용할 때 큰 따옴표를 이스케이프하지 않아도됩니다. 그러나 문자열을 인쇄 할 때는

> "abc \"def\"" 
[1] "abc \"def\"" 
> 'abc "def"' 
[1] "abc \"def\"" 
항상 큰 따옴표를 사용합니다.