R从系统命令的标准输出读取数据到数据帧

R read data from stdout of system command into data frame

我用

调用系统命令
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

我怎样才能'explode'得到一个真实的数据框?

谢谢 约尔格

as.data.frame() 并不像您想象的那样。 system() 命令返回一个字符串(某种格式),因此您需要对其进行解析。尝试 read.table() 或类似的函数(确切使用哪个函数以及使用什么参数取决于调用的确切输出)。

您需要通过其 text 参数(即 result = read.table(text = system_output, …))将文本传递给函数,或者您可以使用 pipe() 而不是 system(),然后阅读结果流。

在您的实例中,查看 readme of gdrive, it looks as if read.fwf()read.table() 更合适。