33

I am running Windows XP Pro and R Version 2.15.1 R is installed in the following folder:

C:\Program Files\R\R-2.15.1

I am trying to create a function that reads in a .csv file like so:

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

I get the error

Error: '\R' is an unrecognized escape in character string starting "C:\R"

Is there a problem with my directory structure / folder naming conventions?

Brian Diggs
  • 57,757
  • 13
  • 166
  • 188
dorkboy
  • 447
  • 1
  • 7
  • 10

5 Answers5

57

You have to escape the \ since it is itself an escape character.

read.table('C:\\xxx\\classes\\R_Prog\\specdata\\data.csv') head(data) }
KyleMit
  • 30,350
  • 66
  • 462
  • 664
Jordan Kaye
  • 2,837
  • 15
  • 15
20

As nobody suggested a forward slash yet, allow me to do so:

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

I find forward slashes "easier on the eye" as it makes paths more consistent across OSs, and you do not need to escape them either. Which means you save a whole byte each time. Yippie.

Dirk Eddelbuettel
  • 360,940
  • 56
  • 644
  • 725
8

Noone has suggested file.path yet. This will concatenate a string together to form a file path using a platform specific separator ( default is / on windows)

file.path('c:', 'xxx', 'classes', 'R_prog','specdata', 'data.csv')
## [1] "c:/xxx/classes/R_prog/specdata/data.csv"
mnel
  • 113,303
  • 27
  • 265
  • 254
3

You need to escape your backslashes. try doubling them: c:\\xxx\\classes\\R_Prog\\ etc.

Broam
  • 4,602
  • 1
  • 23
  • 38
-3

I've found that both the \ (escaping the )

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

and the / solutions work:

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

I personally find it easier to use the latter.