R将系统命令的标准输出中的数据读入数据帧 [英] R read data from stdout of system command into data frame
本文介绍了R将系统命令的标准输出中的数据读入数据帧的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用
调用系统命令driveFileList <- try(as.data.frame(system(paste0("/usr/local/bin/gdrive list "), intern = TRUE, ignore.stderr = TRUE)))
我用
检查结果print(dim(driveFileList))
print(typeof(driveFileList))
我看到我有一个3行0列的列表。
但是系统命令实际上给了我一些类似的东西
1 Id Name Type Created
2 23423423 nameOfFile1.csv doc 2016-08-22 18:40:05
3 2342342 nameOfFile2.csv doc 2016-08-22 18:39:39
4 34323334 nameOfFile3.csv doc 2016-08-23 17:58:46
我如何才能"分解"它,才能获得真实的数据框?
谢谢 约尔格
推荐答案
as.data.frame
并不像您认为的那样。system
命令返回一个字符串(某种格式),因此您需要对其进行解析。尝试read.table
或类似的函数(具体使用哪些函数,以及使用哪些参数,取决于调用的确切输出)。
text
参数(即Result=Read.table(Text=SYSTEM_OUTPUT,…))将文本传递给函数) or you could use
管道instead of
system`,并读取结果流。
查看readme of gdrive,似乎read.fwf
比您的实例中的read.table
更合适。
这篇关于R将系统命令的标准输出中的数据读入数据帧的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文