Ошибка: "\R" - это нераспознанный escape в символьной строке, начинающейся с "C:\R"

Я работаю под управлением 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" - это нераспознанный escape в символьной строке, начинающейся с "C:\R"

Есть ли проблема с моей структурой каталогов / соглашениями об именах папок?

5 ответов

Решение

Вы должны избежать \ так как это сам по себе побег.

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

Поскольку никто еще не предложил косую черту, позвольте мне сделать это:

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

Я считаю, что прямая косая черта "легче на глаз", поскольку она делает пути более согласованными в разных ОС, и вам также не нужно избегать их. Это означает, что вы сохраняете целый байт каждый раз. Yippie.

Никто не предложил file.path еще. Это объединит строку вместе, чтобы сформировать путь к файлу, используя специфический для платформы разделитель (по умолчанию / на окнах)

file.path('c:', 'xxx', 'classes', 'R_prog','specdata', 'data.csv')
## [1] "c:/xxx/classes/R_prog/specdata/data.csv"

Тебе нужно убежать от обратной косой черты. попробуйте удвоить их: c:\\xxx\\classes\\R_Prog\\ и т. д.

Я обнаружил, что оба \ (избегая)

C:\\xxx\\classes\\R_Prog\\specdata\\data.csv

и / решения работают:

C:/xxx/classes/R_prog/specdata/data.csv

Мне лично легче использовать последний.

Другие вопросы по тегам