WindowsでRを実行しており、デスクトップにcsvファイルがあります。次のようにロードします。
x<-read.csv("C:\Users\surfcat\Desktop\2006_dissimilarity.csv",header=TRUE)
しかし、Rは次のエラーメッセージを表示します
エラー: 「C:\U」で始まる文字列に 16 進数なしで「\U」が使用されています
では、このファイルをロードする正しい方法は何ですか。ビスタを使用しています
WindowsでRを実行しており、デスクトップにcsvファイルがあります。次のようにロードします。
x<-read.csv("C:\Users\surfcat\Desktop\2006_dissimilarity.csv",header=TRUE)
しかし、Rは次のエラーメッセージを表示します
エラー: 「C:\U」で始まる文字列に 16 進数なしで「\U」が使用されています
では、このファイルをロードする正しい方法は何ですか。ビスタを使用しています
\
すべてをに置き換えます\\
。
この場合、次の文字をエスケープしようとしているU
ので、挿入するには、エスケープされた文字を挿入する\
必要があり\
ます\\
smitec は既に正解しているため、この回答を正解としてマークしないでください。Windows パスを R で機能する形式に変換する .First ライブラリに保持している便利な関数を含めています (Sacha Epskamp で説明されているメソッド)。パスをクリップボードにコピーし (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)
}
解決
これを試して: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())`"
このスニペットは、バックスラッシュ\
を 2 つのバックスラッシュに変換します\\
。バックスラッシュをスラッシュに変換したい場合は、次のバージョンが機能します/
。
snippet pp
"`r gsub("\\\\", "/", readClipboard())`"
好みのスニペットが定義されたら、p- p- TAB-と入力してクリップボードからパスを貼り付けますENTER(つまり、pp に続いて Tab キーを押してから Enter を押します)。パスは魔法のように R フレンドリーな区切り記号で挿入されます。
R は、文字列内の「\」をエスケープ文字として読み取っていると思います。たとえば、\n は文字列内に新しい行を作成し、\t は文字列内に新しいタブを作成します。
R はこれを通常のバックスラッシュとして認識するため、'\' が機能します。
簡単な方法は、python を使用することです。Python端末タイプで
r「C:\Users\surfcat\Desktop\2006_dissimilarity.csv」とすると、「C:\Users\surfcat\Desktop\2006_dissimilarity.csv」が返されます