我有一个wget_string和命令如下:
wget_string <- paste("wget --user=" , u_name , " --password=", p_word, " ", my_urls,' -qO ', file_name, sep="")
system(wget_string)
readLines(file_name)
Run Code Online (Sandbox Code Playgroud)
哪个有效,但后来我必须使用readLines()将文件读入R.我想运行该命令,以便该文件直接在R中可用,而不保存到硬盘然后从中加载.
我希望通过从Web上直接将文件加载到R来节省资源.由于安全服务器,无法从头开始使用readlines.有什么选择?
Spa*_*man 14
函数具有的intern=TRUE参数system.从命令中捕获输出.使用force和right选项wget打印到stdout:
> wget_string="wget -qO- http://www.google.com"
> s = system(wget_string,intern=TRUE)
Run Code Online (Sandbox Code Playgroud)
如果您返回的数据是CSV文件,textConnection您可以使用,将其提供给read.csv您.
如果使用-O -选项,wget则将输出设置为standar output(直接在屏幕上书写).通过这种方式,您可以直接从wget命令的输出中读取.
例如
wget -O - http: //www.address.com
Run Code Online (Sandbox Code Playgroud)
将下载网页并将其直接打印到standard output.所以你可以直接读取输出system(wget_string).
从wget手册页:
-O file --output-document = file文档不会写入相应的文件,但所有文件将连接在一起并写入文件. 如果 - 用作文件,文档将打印到标准输出,禁用链接转换.(使用./-打印到名为 - 的文件.)