我想为bash运行R代码from here:
git log --format=format:%cd --date=short --shortstat --no-merges master \
| paste - - - | sort --key 1 | sed '$a\\' \
| awk --field-separator "\t" '
$1 != date { print date, ins, del; date = $1; ins = 0; del = 0; }
{ match($2, /([0-9]+) ins/, m); ins += m[1];
match($2, /([0-9]+) del/, m); del += m[1]; }' \
| R --eval '
library("makeR")
attach(read.table(textConnection(readLines("stdin"))))
png("heatmap.png")
calendarHeat(V1, sapply(pmax(V2, V3), log))'
但我的bash上没有r --eval
命令,它说:
警告:未知选项'--eval'
我该怎么办?
答案 0 :(得分:1)
这绝对有效。这是我用你的代码片段制作的一个快速ad-hoc shell脚本:
#!/bin/sh
git log --format=format:%cd --date=short --shortstat --no-merges master | \
paste - - - | sort --key 1 | sed '$a\\' | \
awk --field-separator "\t" \
'$1 != date { print date, ins, del; date = $1; ins = 0; del = 0; }
{ match($2, /([0-9]+) ins/, m); ins += m[1];
match($2, /([0-9]+) del/, m); del += m[1]; }' | \
r -lmakeR -e'X <- read.table(textConnection(readLines("stdin"))); \
png("heatmap.png"); \
calendarHeat(X$V1, sapply(pmax(X$V2, X$V3), log)); \
dev.off()'
当在我们的Rblpapi项目的仓库中运行时,会产生下面的图像。
我在这里使用了两个littler功能:-l
来加载一个包(这里makeR我必须从其存档中安装,-e ...
表示。在R
中,我们只会将library(makeR)
添加到表达式字符串...