【问题标题】:Cannot reproduce my code for download.file in Markdown, if I copy the same code to console it works如果我将相同的代码复制到控制台,则无法在 Markdown 中重现我的 download.file 代码
【发布时间】:2017-04-21 19:39:05
【问题描述】:
if(!file.exists("./data/c3w4")){dir.create("./data/c3w4")}
url341 <- "https://d396qusza40orc.cloudfront.net/getdata%2Fprojectfiles%2FUCI%20HAR%20Dataset.zip"

download.file(url341, destfile = "./data/c3w4/pr341.zip")

我确定我最初使用这组命令来下载文件,但现在我正在尝试重现代码,它给出了错误Error in download.file(url341, destfile = "./data/c3w4/") : cannot open destfile './data/c3w4/', reason 'No such file or directory'

这是我控制台的一些相关输出: 我确实删除了我第一次下载的“pr341.zip”文件。

> getwd()
[1] "C:/Users/avtarsingh/Downloads"
> list.dirs()
[1] "."                                                 
[2] "./data"                                            
[3] "./data/c3w4"                                       
[4] "./data/c3w4/UCI HAR Dataset"                       
[5] "./data/c3w4/UCI HAR Dataset/test"                  
[6] "./data/c3w4/UCI HAR Dataset/test/Inertial Signals" 
[7] "./data/c3w4/UCI HAR Dataset/train"                 
[8] "./data/c3w4/UCI HAR Dataset/train/Inertial Signals"
[9] "./new"                                             
> list.files("./data/c3w4")
[1] "project.Rmd"     "UCI HAR Dataset"

*(添加编辑)刚刚注意到,如果我将代码从 R markdown 复制并粘贴到控制台,它就可以工作。为什么?

【问题讨论】:

  • 你的工作目录有变化吗?
  • 我不这么认为,我想弄清楚我改变了什么。我将我的工作目录设置回默认值。
  • (如果你还没有,)在 Markdown 中也输出getwd()
  • 使用大写字母会让你看起来像在喊

标签: r knitr


【解决方案1】:

我对 rmarkdown 的经验是,您确实需要了解工作目录与控制台中的工作目录不同,并且您不能做出“。”的假设。在一条路径中暗示。如果您 getwd() 并使用 paste() 创建通常可以工作的完整文件路径,但您必须确保已在任何位置(可能不明显)创建了您需要的任何文件夹作为工作目录。当然,您可以测试它以找出然后直接构建东西,这意味着使用 getwd() 做一个测试文档以找出实际的 knitr 工作目录是什么,然后从那里构建文件路径。

对我来说,我经常会得到类似的东西

paste0("~","downloads/","filname") 

【讨论】:

  • 我将对此进行测试。感谢回复
  • 我看到使用完整路径是我在编写脚本(.Rmd 或其他)时需要练习的第一件事。还有一些东西,我想用link 练习的 root.dir 选项。谢谢。
猜你喜欢
  • 2013-06-28
  • 2017-08-11
  • 2021-12-12
  • 1970-01-01
  • 2019-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多