相关疑难解决方法(0)

管道stdin到R

我无法将stdin传递给R脚本.

这是我的玩具脚本test.R:

#!/usr/bin/env Rscript
while(length(line <- readLines('stdin', n=1, warn=FALSE)) > 0) {
  write(line, stderr())
  # process line
}
Run Code Online (Sandbox Code Playgroud)

我想通过每一行并做一些处理.这是我的输入文件名input:

aaaaaa
bbbbbb
cccccc
dddddd
eeeeee
ffffff
Run Code Online (Sandbox Code Playgroud)

如果我做

cat input | test.R
Run Code Online (Sandbox Code Playgroud)

我只得到:

aaaaaa
Run Code Online (Sandbox Code Playgroud)

有什么我错过的吗?

shell r pipe

26
推荐指数
3
解决办法
3万
查看次数

单件读取CSV文件的策略?

我在计算机上有一个中等大小的文件(4GB CSV),没有足够的RAM来读取它(在64位Windows上为8GB).在过去,我只是将它加载到一个集群节点上并将其读入,但我的新集群似乎任意将进程限制为4GB的RAM(尽管硬件每台机器有16GB),所以我需要一个短期修复.

有没有办法将CSV文件的一部分读入R以适应可用的内存限制?这样我一次可以读取文件的三分之一,将其子集化为我需要的行和列,然后在下一个三分之一读取?

感谢评论者指出我可以使用一些大内存技巧读取整个文件: 快速读取非常大的表作为R中的数据帧

我可以想到其他一些解决方法(例如在一个好的文本编辑器中打开,删掉2/3的观察结果,然后加载R),但是如果可能的话我宁愿避免使用它们.

因此,阅读它看起来仍然是现在最好的方法.

r bigdata

19
推荐指数
2
解决办法
2万
查看次数

标签 统计

r ×2

bigdata ×1

pipe ×1

shell ×1