2016-08-25 7 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 

を生成するが、文字列の一部です。

は、第2のケースで

> "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\""