gpt4 book ai didi

将参数从 R 返回到 bash

转载 作者:行者123 更新时间:2023-11-29 09:13:51 25 4
gpt4 key购买 nike

我有以下 bash 脚本,其中调用了一个 R 脚本

#!/bin/bash

declare -x a=33
declare -x b=1
declare -x c=0

Rscript --vanilla MWE.R $a $b $c

echo $a $b $c

我想修改 R 脚本中的 bash 变量并在 bash 脚本中返回它们修改后的值,因为我随后将修改后的变量传递到其他地方。 R脚本是

#!/usr/bin/env Rscript
args = commandArgs(trailingOnly=TRUE)

Rb = as.numeric(args[2])
Rc = as.numeric(args[3])

Rb = Rb + 1
Rc = Rc + 1

args[2]=Rb
args[3]=Rc

print(c(args[1],args[2],args[3]))

然而,printecho 的输出分别是:

[1] "33" "2"  "1" 
33 1 0

这表明新值没有从 R 传递到 bash。我做错了什么?

最佳答案

由于 Rscript 不允许环境变量操作,您需要从 bash 程序中捕获 R 输出。

许多可能性之一是使用 array :

#!/bin/bash

declare a=33
declare b=1
declare c=0

declare -a RESULT
RESULT=($(Rscript --vanilla MWE.R $a $b $c))

a=${RESULT[1]}
b=${RESULT[2]}
c=${RESULT[3]}

关于将参数从 R 返回到 bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38263709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com