WindowsでRを実行し、デスクトップにcsvファイルがあります。次のようにロードします。
x<-read.csv("C:\Users\surfcat\Desktop\2006_dissimilarity.csv",header=TRUE)
しかし、Rは次のエラーメッセージを表示します
エラー:「C:\ U」で始まる文字列に16進数なしで使用された「\ U」
それで、このファイルをロードする正しい方法は何ですか。Vistaを使用しています
WindowsでRを実行し、デスクトップにcsvファイルがあります。次のようにロードします。
x<-read.csv("C:\Users\surfcat\Desktop\2006_dissimilarity.csv",header=TRUE)
しかし、Rは次のエラーメッセージを表示します
エラー:「C:\ U」で始まる文字列に16進数なしで使用された「\ U」
それで、このファイルをロードする正しい方法は何ですか。Vistaを使用しています
回答:
すべて置き換える\
と\\
。
この場合、次の文字をエスケープしようとしているU
ので、挿入するために\
エスケープ挿入するようにあなたがする必要が\
あります\\
smitecはすでに正しく回答しているため、この回答を正しいものとしてマークしないでください。WindowsパスをRで機能する形式(Sacha Epskampによって記述されたメソッド)に変換する.Firstライブラリに保持している便利な関数を含めています。パスをクリップボードにコピーして(ctrl + c)、関数をとして実行するだけpathPrep()
です。議論の必要はありません。パスはコンソールに正しく印刷され、スクリプトに簡単に貼り付けることができるようにクリップボードに書き込まれます。これがお役に立てば幸いです。
pathPrep <- function(path = "clipboard") {
y <- if (path == "clipboard") {
readClipboard()
} else {
cat("Please enter the path:\n\n")
readline()
}
x <- chartr("\\", "/", y)
writeClipboard(x)
return(x)
}
WP
(Windowsパス)を参照してください。
解決
これを試して: x <- read.csv("C:/Users/surfcat/Desktop/2006_dissimilarity.csv", header=TRUE)
説明
Rは、"\"
特別な意味があるため、通常のWindowsパスを正しく理解できません。これは、次の文字に特別な意味を与えるためのエスケープ文字として使用され\n
ます(改行、\t
タブ、\r
キャリッジリターン、...、こちらをご覧ください)。
Rはシーケンスを知らないので、\U
文句を言います。ただ、交換する"\"
との"/"
または追加を使用 "\"
逃れるために "\"
その特別な意味から、すべてがスムーズに動作します。
代替案
Windowsでは、RのWindows固有のパスを使用してワークフローを改善するための最善の方法は、カスタムホットキーを許可するAutoHotkeyなどを使用することだと思います。
AutoHotkeyコードスニペット (ホームページへのリンク)
^+v::
StringReplace, clipboard, clipboard, \, /, All
SendInput, %clipboard%
私の解決策は、RStudioスニペットを次のように定義することです。
snippet pp
"`r gsub("\\\\", "\\\\\\\\\\\\\\\\", readClipboard())`"
このスニペットは、円記号を円記号\
に変換します\\
。次のバージョンは、バックスラッシュをフォワードスラッシュに変換する場合に機能します/
。
snippet pp
"`r gsub("\\\\", "/", readClipboard())`"
お好みのスニペットが定義されると、次のように入力して、クリップボードからのパスを貼り付けp- p- TAB- ENTER(PP、その後、タブキーであること、次に入力)とパスが魔法のようにR優しい区切り文字で挿入されます。
テキストマイニング(音声、ニュースレターなど)のデータを含むtxtファイルの場合、これに対処する最善の方法は、「\」を「/」に置き換えることです。
例:
file<-Corpus(DirSource("C:/Users/PRATEEK/Desktop/training tool/Text Analytics/text_file_main"))
これは本当に古いことは知っていますが、とにかくコピーして貼り付ける場合は、次を使用できます。
read.csv(readClipboard())
readClipboard()は、バックスラッシュをエスケープします。「.csv」がコピーに含まれていることを確認してください。おそらく次のようになります。
read.csv(paste0(readClipboard(),'.csv'))
また、タイピングを最小限に抑えたい場合は、いくつかの関数を使用できます。
setWD <- function(){
setwd(readClipboard())
}
readCSV <- function(){
return(readr::read_csv(paste0(readClipboard(),'.csv')))
}
#copy directory path
setWD()
#copy file name
df <- readCSV()
Rは文字列の「\」をエスケープ文字として読み取っていると思います。たとえば、\ nは文字列内に新しい行を作成し、\ tは文字列内に新しいタブを作成します。
Rはこれを通常の円記号として認識するため、「\」は機能します。
readClipboard()
直接動作します。パスをクリップボードにコピーします
C:\Users\surfcat\Desktop\2006_dissimilarity.csv
次に
readClipboard()
として表示されます
[1] "C:\\Users\\surfcat\\Desktop\\2006_dissimilarity.csv"
簡単な方法は、Pythonを使用することです。Pythonターミナルタイプで
r "C:\ Users \ surfcat \ Desktop \ 2006_dissimilarity.csv"を実行すると、「C:\ Users \ surfcat \ Desktop \ 2006_dissimilarity.csv」に戻ります。