每当我想要将某些内容下载到文件夹时,我必须先手动创建该文件夹。
例如:
download.file("https://ndownloader.figshare.com/files/2292169",
"data2/portal_data_joined.csv")
会给我一个错误
cannot open destfile 'data2/portal_data_joined.csv', reason 'No such file or directory'
我的解决方案是手动创建文件夹data2然后它可以工作。 我的问题是:为什么R没有权利创建文件夹?
答案 0 :(得分:2)
首先使用dir.create
创建目录:)
答案 1 :(得分:1)
R有权利,但它选择不这样做。当R创建文件时,似乎不常创建文件夹是相当普遍的做法:
> write.table(x,file="./foo/bar/baz.csv")
Error in file(file, ifelse(append, "a", "w")) :
cannot open the connection
In addition: Warning message:
In file(file, ifelse(append, "a", "w")) :
cannot open file './foo/bar/baz.csv': No such file or directory
一个简洁的解决方案是创建一个名为makepath
的函数,它在任何深度创建文件夹并返回路径:
> makepath = function(path){dir.create(dirname(path),recursive=TRUE);path}
然后你可以这样做:
> write.table(x,file=makepath("./foo/bar/baz.csv"))
> write.table(x,file=makepath("./foo/bar/qux/moo/baz.csv"))
同样适用于您的download.file
。
答案 2 :(得分:0)
download.file不会为您创建destfile。您必须先创建它,然后才能下载它。其他一些函数创建文件,但不是download.file
菲利普杰拉德说: 要使用dir.create("folder")
从R创建目录