我在r markdown并读取txt文件时有一个奇怪的行为……仅在Windows 7计算机上。我的Mac上没有问题,并且尚未在Windows 8上进行过检查。
我有一个基本的降价文件
---
title: "Untitled"
output: html_document
---
```{r global_options, message=FALSE}
setwd('E:/Falk')
list.files(pattern='test')
```
```{r global variable settings, eval=TRUE}
pg_filename <- 'test.txt'
pg <- read.delim (pg_filename)
```
如果我在最后一个块中设置eval = FALSE,则会创建html并获得带有test.txt文件的列表。如果我将eval = TRUE设置为错误消息,则找不到该文件:
Quitting from lines 11-13 (Preview-2b2464944991.Rmd)
Error in file(file, "rt") : cannot open the connection
Calls: <Anonymous> ... withVisible -> eval -> eval -> read.delim -> read.table -> file
Execution halted
如果我将所有内容都放在一个块中,则会创建html。
有谁知道是什么问题吗?
编辑:也许我还不够清楚。我知道eval = TRUE和FALSE之间的区别,但是如果有错误消息,我不知道一种测试markdown中某些内容的方法,但是在块中一切正常。
因此,更明确地说:
作品:
---
title: "Untitled"
output: html_document
---
```{r}
setwd('E:/Falk')
list.files(pattern='test')
pg_filename <- 'test.txt'
pg <- read.delim (pg_filename)
```
不起作用:
---
title: "Untitled"
output: html_document
---
```{r}
setwd('E:/Falk')
list.files(pattern='test')
```
```{r}
pg_filename <- 'test.txt'
pg <- read.delim (pg_filename)
```
您不能setwd
在knitr中使用,也不应在R代码中使用它。您需要专门使用相对路径。
特别是,setwd
在其当前块之外没有任何影响-其他块将在文档路径中而不是在设置路径中进行评估。
通常,setwd
仅应由用户在交互式会话中或在项目配置文件(本地.Rprofile
文件)中用于设置项目目录。它在脚本中没有位置。
最直接的等效项setwd
是使用knitr选项root.dir
:
opts_knit$set(root.dir = 'some/dir')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句