3

我有一个 wget_string 和命令如下:

wget_string <- paste("wget --user=" , u_name , " --password=", p_word,     " ", my_urls,' -qO ', file_name,   sep="")
 system(wget_string)
 readLines(file_name)

哪个有效,但是我必须使用 readLines() 将文件读入 R。我想运行该命令,以便该文件直接在 R 中可用,而无需保存到硬盘然后从中加载。

我希望通过将文件直接从网络加载到 R 来节省资源。由于安全服务器,不能从一开始就使用 readlines。有哪些选择?

4

2 回答 2

14

函数具有的intern=TRUE参数。system从它执行的命令中捕获输出。使用力和正确的选项wget打印到标准输出:

> wget_string="wget -qO- http://www.google.com"
> s = system(wget_string,intern=TRUE)

如果您返回的数据是 CSV 文件,textConnection您可以使用,将其提供给read.csv您。

于 2013-01-09T17:12:56.637 回答
5

如果您使用-O -选项wget将输出设置为standar output(直接在屏幕上书写)。通过这种方式,您可以直接从 wget 命令的输出中读取。

例如

 wget -O - http: //www.address.com

将下载网页并直接打印到standard output. 所以你可以直接读取system(wget_string).

wget手册页:

-O file --output-document=file 文件不会被写入相应的文件,但所有文件将被连接在一起并写入文件。 如果 - 用作文件,文档将打印到标准输出,禁用链接转换。(使用 ./- 打印到一个字面上命名为 - 的文件。)

于 2013-01-09T17:10:54.683 回答