2012-10-02 10 views
14

Używam Windows XP Pro i R w wersji 2.15.1 R jest instalowany w następującym folderze:Błąd: ' R' jest nierozpoznany ucieczka w ciąg znaków rozpoczynający "C: R"

C:\Program Files\R\R-2.15.1

próbuję utworzyć funkcję, który czyta w pliku csv tak:

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

pojawia się błąd

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

Czy istnieje proble m z moimi konwencjami nazewnictwa katalogów/folderów?

Odpowiedz

22

Musisz uciec z \, ponieważ jest on postacią ucieczki.

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

2

Musisz uciec z ukośników. spróbuj podwoić je: c: \\ xxx \\ classes \\ R_Prog \\ itd.

13

Ponieważ nikt nie zaproponował jeszcze ukośnik, pozwala mi to zrobić:

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

znajdę ukośniki „łatwiejsze w oku”, jak to sprawia, że ​​ścieżki bardziej spójne Oss, a nie musisz też uciec od nich. Co oznacza, że ​​za każdym razem zapisujesz cały bajt. Yippie.

5

Nikt jeszcze nie zasugerował file.path. Spowoduje to złączyć ciąg razem tworząc ścieżkę za pomocą specjalnego separatora platformy (domyślnie / na oknach)

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

Znalazłem że zarówno \ (ucieczki)

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

i działanie/rozwiązań:

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

Osobiście łatwiej jest z nich korzystać.

+1

Ta odpowiedź nie dodaje żadnych nowych informacji niż te, które już dają inne odpowiedzi. –