2014-09-14 3 views
17

Я хочу читать TXT в RMDread.table() и read.csv как ошибки в RMD

--- 
title: "Untitled" 
output: html_document 
--- 
```{r} 
country <- read.table("country.txt") 
country 
``` 

Он показывает ошибку:

processing file: Preview-2878539db5c7.Rmd 

Quitting from lines 6-8 (Preview-2878539db5c7.Rmd) 
Error in file(file, "rt") : cannot open the connection 
Calls: <Anonymous> ... withCallingHandlers -> withVisible -> eval -> eval -> read.table - > file 
Execution halted 

Но я могу запустить код на R консоли успешно

> country <- read.table("country.txt") 

> country 
    production1 education1  fir1 inflation1 lq1 nonstatein1 patent1  tax1 trade1 
2001 52920.47 132649.4 2.339263 0.700000 NA 19562.16 109313 23783.07 23783.07 
2002 65876.57 144090.3 2.500826 -0.800000 NA 24727.30 131972 27479.61 27479.61 
2003 89227.20 156280.4 2.691411 1.168900 NA 34044.45 164611 31537.50 31537.50 
2004 92656.06 167683.7 2.615238 3.878600 NA 45613.10 177364 36179.87 36179.87 
2005 167115.37 171379.7 2.617289 1.810000 NA 77525.52 231570 42008.37 42008.37 
2006 218827.79 181084.6 2.578939 1.467800 NA 77441.52 282315 54866.43 54866.43 
2007 286691.88 192677.9 2.439093 4.772700 NA 99032.26 333059 66453.31 66453.31 
2008 364955.86 202542.8 2.440807 5.864570 NA 124621.23 418524 74104.80 74104.80 
2009 398476.09 213539.2 3.783803 -0.693900 NA 153670.18 537957 65501.69 65501.69 
2010 511364.93 254805.1 3.806066 3.322200 NA 194286.94 700304 81966.57 81966.57 
2011 624657.55 279690.7 2.862413 5.393433 NA 229513.81 997132 91118.75 91118.75 

файл существует в БВ

> file.exists("country.txt") 
[1] TRUE 

Я также пытаюсь использовать read.csv() но показывают аналогичную ошибку:

processing file: Preview-28786aad2e0.Rmd 

Quitting from lines 6-8 (Preview-28786aad2e0.Rmd) 
Error in file(file, "rt") : cannot open the connection 
Calls: <Anonymous> ... withVisible -> eval -> eval -> read.csv -> read.table -> file 
Execution halted 
+0

использовать абсолютный путь или понимать, что ваш рабочий каталог и каталог knitr не может быть такой же – rawr

+0

+1 для комментария @ RAWR для использования абсолютного пути, кроме:) – daroczig

+0

'rm -r ~/path/to/daroczig' – rawr

ответ

25

Короткий ответ:

KNOW THY getwd()

Не следует путать рабочий каталог текущего R консоль с рабочим каталогом вашего документа R Markdown (который является каталогом этого документа R Markdown). Если вы сомневаетесь, распечатайте getwd(), где вы хотите узнать свой рабочий каталог (например, в * .Rmd). Примечание. R Markdown документы скомпилированы в отдельных сеансах R для повышения воспроизводимости, поэтому ваша текущая консоль R не имеет ничего общего с компиляцией документов R Markdown.

+0

@StevenLee Нет, вы, скорее всего, ошибетесь, если найдете, что вам нужно использовать 'setwd()' или использовать абсолютные пути. Как я уже сказал, продолжайте и выясните, что ваш рабочий каталог 'getwd()' действительно есть, и всегда думайте о _relative paths_. Например, если 'country.txt' находится в том же каталоге, что и ваш файл Rmd, вам не нужно ничего делать, и вы все настроены. –

+2

Но бывают случаи, когда файлы данных могут быть далеки от кода (например, я держу код в синхронизации с сетевым диском, в то время как действительно большой файл данных в другом месте), есть ли возможность установить рабочий каталог документа knrit? – xgdgsc

+0

Функция opts_knit $ set (root.dir = 'path') не работает вне документа. Для доступа от других людей/ОС мне нужен рабочий каталог, установленный вне документа. – xgdgsc

1

Просто попробуйте поместить все файлы данных, где находится файл Markdown (.Rmd).

1

Mine - это глупый случай, но может случиться с кем-то другим ... Rmd был сохранен в рабочем каталоге по умолчанию, а не в текущем рабочем каталоге, где я и думал. У меня был длинный список файлов, и я не понял, что скрипта там не было. Стоит проверить!

1

Ваш текущий файл RMD не в текущем рабочем каталоге

Смежные вопросы