首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >read.table函数与stdin

read.table函数与stdin
EN

Stack Overflow用户
提问于 2013-10-10 18:17:01
回答 1查看 5.8K关注 0票数 6

我有一个标签分隔的文本文件,我试图用read.table函数加载到R中。脚本的前几行如下所示

代码语言:javascript
复制
#!/usr/bin/env Rscript
args <- commandArgs(trailingOnly=TRUE)
data <- read.table(args[1], header=TRUE, sep="\t", quote="")
# process the data

这个很管用。我最初试图让R从标准输入中读取数据,但没有成功。我的第一个方法..。

代码语言:javascript
复制
#!/usr/bin/env Rscript
data <- read.table(stdin(), header=TRUE, sep="\t", quote="")
# process the data

.看上去一点用都没有我的第二个方法..。

代码语言:javascript
复制
#!/usr/bin/env Rscript
data <- read.table("/dev/stdin", header=TRUE, sep="\t", quote="")
# process the data

...read数据文件但是(由于某种原因我不明白)前20行出现故障,这是一个大问题(特别是因为这些行包含头信息)。有没有办法让read.table从标准输入中读取?我是不是漏掉了什么显而易见的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-10 18:23:52

?stdin说:

stdin()指的是‘控制台’,而不是进程的C级‘stdin’。区别在GUI控制台(它们可能没有活动的‘stdin’,如果它们这样做了可能不会连接到控制台输入)和嵌入式应用程序中也很重要。如果您希望访问C级文件流“stdin”,请使用file("stdin")

和:

当R从文件中读取脚本时,该文件就是“控制台”:这是允许内联数据…的传统用法。

这可能是观察到的行为的原因。原则上,您可以从标准输入read.table -但在大多数(几乎所有?)案例你会想要通过file('stdin')做到这一点。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19303218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档