我有一个标签分隔的文本文件,我试图用read.table函数加载到R中。脚本的前几行如下所示
#!/usr/bin/env Rscript
args <- commandArgs(trailingOnly=TRUE)
data <- read.table(args[1], header=TRUE, sep="\t", quote="")
# process the data这个很管用。我最初试图让R从标准输入中读取数据,但没有成功。我的第一个方法..。
#!/usr/bin/env Rscript
data <- read.table(stdin(), header=TRUE, sep="\t", quote="")
# process the data.看上去一点用都没有我的第二个方法..。
#!/usr/bin/env Rscript
data <- read.table("/dev/stdin", header=TRUE, sep="\t", quote="")
# process the data...read数据文件但是(由于某种原因我不明白)前20行出现故障,这是一个大问题(特别是因为这些行包含头信息)。有没有办法让read.table从标准输入中读取?我是不是漏掉了什么显而易见的东西?
发布于 2013-10-10 18:23:52
?stdin说:
stdin()指的是‘控制台’,而不是进程的C级‘stdin’。区别在GUI控制台(它们可能没有活动的‘stdin’,如果它们这样做了可能不会连接到控制台输入)和嵌入式应用程序中也很重要。如果您希望访问C级文件流“stdin”,请使用file("stdin")。
和:
当R从文件中读取脚本时,该文件就是“控制台”:这是允许内联数据…的传统用法。
这可能是观察到的行为的原因。原则上,您可以从标准输入read.table -但在大多数(几乎所有?)案例你会想要通过file('stdin')做到这一点。
https://stackoverflow.com/questions/19303218
复制相似问题