You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在命令行向R脚本传递字符串类型参数

R命令行字符串参数传递修正方案

你遇到的报错核心原因是shell层的同类型引号嵌套冲突,你写的命令里外层用了"包裹--args参数段,内层给文件名加的"会被shell识别为外层引号的结束标记,导致整段参数解析错乱。

修正方法

方案1:外层改用单引号包裹参数段

shell中单引号包裹的内容会原样传递,不会解析内部的双引号,R可以正常识别字符串参数:

R CMD BATCH '--args CHR=1 file="file1.txt"' rfile.R test.Rout

方案2:内层双引号加转义符

如果要保留外层双引号,给内层的双引号前加反斜杠\转义,告诉shell这是普通字符:

R CMD BATCH "--args CHR=1 file=\"file1.txt\"" rfile.R test.Rout

更简便的无命名参数传法

如果不需要命名参数,直接按顺序传参可以避开引号处理的麻烦:

  • 命令行写法:
R CMD BATCH "--args 1 file1.txt" rfile.R test.Rout
  • R脚本内接收示例:
# 读取--args后面的所有参数,按顺序存为向量
args <- commandArgs(trailingOnly = TRUE)
CHR <- as.numeric(args[1])
file <- args[2]

内容的提问来源于stack exchange,提问作者wkde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 23:54:04