R:将变量从 R 传递到 unix
R: pass variable from R to unix
我是通过 bash 脚本 运行 的 R 脚本,并希望 return R 脚本的输出到 bash 脚本以继续使用它.
bash是这样的:
#!/bin/bash
Rscript MYRScript.R
a=OUTPUT_FROM_MYRScript.R
do sth with a
R 脚本是这样的:
for(i in 1:5){
i
sink(type="message")
}
我希望 bash 当时使用 R 中的一个变量,意思是:bash 接收 i=1 并使用它,当该任务完成时,接收 i=2 并且依此类推
知道怎么做吗?
这里是MYRScript.R:
for(iter in 1:5) {
cat(iter, ' ')
}
这是您的 bash
脚本:
#!/bin/bash
r_output=`Rscript ~/MYRscript.R`
for iter in `echo $r_output`
do
echo Here is some output from R: $iter
done
Here is some output from R: 1
Here is some output from R: 2
Here is some output from R: 3
Here is some output from R: 4
Here is some output from R: 5
一种选择是使用 #!/usr/bin/env Rscript
使您的 R 脚本可执行(设置可执行位;例如 chmod 0755 myrscript.r
、chmod +x myrscript.r
等...),并将其视为任何其他命令,例如将结果分配给下面的数组变量:
myrscript.r
#!/usr/bin/env Rscript
cat(1:5, sep = "\n")
mybashscript.sh
#!/bin/bash
RES=($(./myrscript.r))
for elem in "${RES[@]}"
do
echo elem is "${elem}"
done
nrussell$ ./mybashscript.sh
elem is 1
elem is 2
elem is 3
elem is 4
elem is 5
我是通过 bash 脚本 运行 的 R 脚本,并希望 return R 脚本的输出到 bash 脚本以继续使用它.
bash是这样的:
#!/bin/bash
Rscript MYRScript.R
a=OUTPUT_FROM_MYRScript.R
do sth with a
R 脚本是这样的:
for(i in 1:5){
i
sink(type="message")
}
我希望 bash 当时使用 R 中的一个变量,意思是:bash 接收 i=1 并使用它,当该任务完成时,接收 i=2 并且依此类推
知道怎么做吗?
这里是MYRScript.R:
for(iter in 1:5) {
cat(iter, ' ')
}
这是您的 bash
脚本:
#!/bin/bash
r_output=`Rscript ~/MYRscript.R`
for iter in `echo $r_output`
do
echo Here is some output from R: $iter
done
Here is some output from R: 1
Here is some output from R: 2
Here is some output from R: 3
Here is some output from R: 4
Here is some output from R: 5
一种选择是使用 #!/usr/bin/env Rscript
使您的 R 脚本可执行(设置可执行位;例如 chmod 0755 myrscript.r
、chmod +x myrscript.r
等...),并将其视为任何其他命令,例如将结果分配给下面的数组变量:
myrscript.r
#!/usr/bin/env Rscript
cat(1:5, sep = "\n")
mybashscript.sh
#!/bin/bash
RES=($(./myrscript.r))
for elem in "${RES[@]}"
do
echo elem is "${elem}"
done
nrussell$ ./mybashscript.sh
elem is 1
elem is 2
elem is 3
elem is 4
elem is 5