你可以使用gnu-R 来做这样的事情:
echo "1" > foo
echo "2" >> foo
cat foo \
| r -e \
'
f <- file("stdin")
open(f)
v <- read.csv(f,header=F)
write(max(v),stdout())
'
2
对于汇总统计,
cat foo \
| r -e \
'
f <- file("stdin")
open(f)
v <- read.csv(f,header=F)
write(summary(v),stdout())
'
# Max, Min, Mean, median, quartiles, deviation, etc.
...
在 json 中:
... | r -e \
'
library(rjson)
f <- file("stdin")
open(f)
v <- read.csv(f,header=F)
json_summary <- toJSON(summary(v))
write(json_summary,stdout())
'
# same stats
| jq '.Max'
# for maximum
如果您使用的是 linux 命令行环境,那么您可能不想重新实现轮子,保持矢量化,并且拥有易于阅读和开发的简洁代码,并且执行一些 标准的、可组合的功能。
在这种情况下,您不需要面向对象的语言(使用 python 会导致接口和代码膨胀,并使用 google、pip 和 conda 进行迭代,具体取决于您需要的库和您必须编码的类型转换)手),您不需要冗长的语法,并且您可能需要默认处理数字数据的数据框/向量/行/列。
您可能还希望脚本可以在您的特定机器上毫无问题地浮动。如果你在 Linux 上,那可能意味着:gnu-R。通过apt-get安装依赖。