2016-11-15 3 views
0

何かをフォルダにダウンロードしたいときは、まずフォルダを手動で作成する必要があります。例えば : download.file("https://ndownloader.figshare.com/files/2292169", "data2/portal_data_joined.csv") rを使ってファイルをダウンロードまたは保存するとRがディレクトリを作成できない

は私のソリューションは、手動でフォルダDATA2を作成することですし、それが動作する私にエラー

cannot open destfile 'data2/portal_data_joined.csv', reason 'No such file or directory'

を与えるだろう。 私の質問は:なぜRにはフォルダを作成する権利がないのですか?

+1

'download.file'はあなたのために' destfile'を作成しません。最初に作成してからダウンロードする必要があります。他の関数はファイルを作成しますが、 'download.file'は作成しません。 –

答えて

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と呼ばれる、任意の深さでのフォルダを作成し、バックパスを返します:Rファイルを作るときにフォルダを作成しないように、かなり一般的であるように見えるでしょう:

> makepath = function(path){dir.create(dirname(path),recursive=TRUE);path} 

次に、あなたが行うことができます:あなたのケースでdownload.fileため

> write.table(x,file=makepath("./foo/bar/baz.csv")) 
> write.table(x,file=makepath("./foo/bar/qux/moo/baz.csv")) 

と同様に。

2

使用dir.create最初のディレクトリを作成するには:)

0

をリッチスクリヴンが言ったように:

download.fileのがあなたのためにdestfileを作成しません。最初に作成してからダウンロードする必要があります。いくつかの他の機能は、ファイルを作成しますが、ない

をdownload.fileのとフェリペジェラールは言った:dir.create("folder")

関連する問題