web-dev-qa-db-ja.com

Rでバックスラッシュをスラッシュに効率的に変換する

Rでバックスラッシュをスラッシュに変換する効率的な方法を探しています。ディレクトリのリンクをWindowsからコピーすると、次のようなものが得られます:

C:\Users\jd\Documents\folder\file.txt

これをC:/Users/jd/Documents/folder/file.txtにすばやく変更するにはどうすればよいですか?上記の表現を文字として読むことすらできません。エラーをスローします

"\ uは、" "C:\ u"で始まる文字列に16進数字なしで使用されます。

RのTAB機能が場所をすばやく見つけるのに役立つことは知っていますが、他に何か解決策があるかどうか疑問に思っていました。作業ディレクトリをフォルダの場所に変更することもできます。私はただ遊んでいて、バックスラッシュをスラッシュに変換しようとしましたが、簡単ではなかったので、好奇心だけでこれを尋ねました。

45
Janesh Devkota

Rでは、\\\でエスケープする必要があるため、パスは次のようになります。

x <- "C:\\Users\\jd\\Documents\\folder\\file.txt"

それを得るには、次のことができます:

x <- readline()

次に、プロンプトで、未変更パスを貼り付けます(CTRL + V、ENTER)

最後に、すべての場所で\\/に変更するには、次のように\を2回エスケープすることにより、gsubを使用できます。

gsub("\\\\", "/", x)
# [1] "C:/Users/jd/Documents/folder/file.txt"
43
Arun

パスを貼り付けるときに最小限のキーストロークでバックスラッシュを変換するには、次のように定義されたRStudio snippet を使用します。

snippet pp
    "`r gsub('"', "", gsub("\\\\", "/", readClipboard()))`"

スニペットが機能するための複数のスペースではなく、tabを2行目に付けてください。

次に入力 pp、 TAB、 ENTER クリップボードのテキストが貼り付けられ、バックスラッシュがスラッシュに置き換えられ、引用符で囲まれます。

上記のスニペットが定義されたら、RStudioにファイルパスをコピーするために通常行う手順は次のとおりです。

  1. エクスプローラーでファイルパスに移動します。
  2. ファイルパスをコピーする場合: Shift + Right click ファイルで、パスとしてコピーをクリックします。
  3. フォルダパスをコピーする場合: Alt + d、 Ctrl + c
  4. ウィンドウをRStudioに変更し、パスを貼り付けるRスクリプトにフォーカスします。
  5. pp、 TAB、 ENTER RStudioに貼り付けて、バックスラッシュをスラッシュに変換します。
23
Josh Gilfillan

私が正しく理解していれば、文字列の編集を取り除いてください。 gsubを使用できるようにするには、すべての\から\\最初に手動で。だから、なぜ変更するだけで_\から/ まず第一に?

クリップボードに文字列がある場合は、使用できます

  x=scan("clipboard",what="string")

これは与える

  "C:\\Users\\jd\\Documents\\folder\\file.txt"

つまり、すべての\から\\自動的に。私は知っています-非常に便利ではありませんが、編集を回避する唯一の方法です。

11
cryo111

パスコピーコピー を使用します。これは、Windowsのファイル/フォルダーを右クリックしたときにカスタムコピーコマンドを作成できるWindowsのプラグインです。そのため、私の右クリックメニューには、オプションとして「スラッシュ付きのフルパスをコピー」があり、ファイル/フォルダをスラッシュ付きでコピーします。毎年、手動でスラッシュをRの形式に変更することからdaysを節約できると思います。

8
Eden

autohotkeyプログラム:

^+v::
StringReplace, clipboard, clipboard, \,/,All
send %clipboard%

control + cファイルパスの後、control + shift + vを使用して貼り付けます

7

RStudioアドイン snippetsaddin を使用するのが好きです。この機能には 'Convert slash'

選択したコードブロック内のすべてのスラッシュを反転するか、選択がない場合(または空白のみが選択されている場合)、クリップボード内のすべてのスラッシュを反転し、現在のカーソル位置に貼り付けます( s)。

アドインはパッケージのように機能しません。これをインストールするには、次を実行します。

devtools::install_github("sfr/RStudio-Addin-Snippets", type = "source")
6
Ben

クリップボードからアドレスを変換する1ステップの方法を次に示します

x  <- gsub  ( "\\\\",  "/",  readClipboard ()  ) 
6
craig_c

スニペット定義のないソリューションは

writeClipboard(gsub("\\\\", "/", readClipboard()))
1
userJT

面倒を取り除く最善の方法は、右パネルのRstudioでファイルを見つけることだと思います。そして、「詳細」をクリックし、「作業ディレクトリとして設定」をクリックします。次に、コンソールに「setwd(...)」と表示されます。これをコードにコピーできます。

0
Sheng