31

Windows XP Pro を実行しており、R バージョン 2.15.1 R は次のフォルダーにインストールされています。

C:\Program Files\R\R-2.15.1

次のように .csv ファイルを読み取る関数を作成しようとしています。

xxx <- function(id, directory, summarize = FALSE) {
    data <- read.table('C:\xxx\classes\R_Prog\specdata\data.csv')
    head(data)
}

エラーが発生します

エラー: '\R' は、"C:\R" で始まる文字列の認識されないエスケープです

ディレクトリ構造/フォルダの命名規則に問題はありますか?

4

5 に答える 5

52

\それ自体がエスケープ文字であるため、エスケープする必要があります。

read.table('C:\\xxx\\classes\\R_Prog\\specdata\\data.csv') head(data) }

于 2012-10-02T18:17:05.803 に答える
19

誰もまだスラッシュを提案していないので、そうさせてください:

R> list.files("C:/opt", pattern="R")
[1] "R-current"  "R-library"  "R-local215" "RStudio"    "Rtools"    
R> 

スラッシュを使用すると、OS 間でパスの一貫性が向上するため、「見やすく」なり、エスケープする必要もありません。つまり、毎回 1 バイトを節約できます。イッピー。

于 2012-10-02T18:28:00.363 に答える
8

まだ誰も提案しfile.pathていません。これにより、文字列が連結され、プラットフォーム固有のセパレータを使用してファイル パスが形成されます (デフォルトは/Windows です)。

file.path('c:', 'xxx', 'classes', 'R_prog','specdata', 'data.csv')
## [1] "c:/xxx/classes/R_prog/specdata/data.csv"
于 2012-10-02T23:12:03.473 に答える
3

バックスラッシュをエスケープする必要があります。それらを 2 倍にしてみてください: c:\\xxx\\classes\\R_Prog\\ など。

于 2012-10-02T18:16:47.127 に答える