R将系统命令的标准输出中的数据读入数据帧 [英] R read data from stdout of system command into data frame

查看:0
本文介绍了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 ofsystem`,并读取结果流。

查看readme of gdrive,似乎read.fwf比您的实例中的read.table更合适。

这篇关于R将系统命令的标准输出中的数据读入数据帧的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆