假设我有一个数据帧,看起来像这样:的R - 参数在命令行错误
SNP Frequency
A 20
B 50
C 7
(真正的数据帧当然有更多的行。)
我想怎么办将一些参数传递给命令行,这将允许我在命令行中设置输入数据帧和频率。这是我曾尝试:
args = commandArgs()
df <-args[1]
freqsub <- subset(df, args[2],header=TRUE)
在args[2]
部分我通常具有的Frequency > somenumber
我知道如何去解决它,当我有df <- args[1]
,但args[2]
没有。
$ Rscript sumtest.R test.txt Frequency>20
"Error in subset.default(df, args[2], header = TRUE) :
argument "subset" is missing, with no default
Calls: subset -> subset.default
Execution halted"
任何想法?如果需要更多信息,很高兴编辑(我无法确定是否是这种情况,对不起)。
感谢您的建议。我试了一下你的建议,并得到了这个问题: 有50个或更多的警告(使用警告()看到的第一个50) 警告消息: 在EVAL(表达式,ENVIR,enclos):来港受到胁迫 同时推出,我可以问你在哪里打印(参数)检查?当你说shell时,我认为它是这一行: '$ Rscript sumtest.R test.txt 20' – Gotmadstacks
我认为你应该首先尝试在R交互式会话中调试代码中的分析部分,然后将脚本转换为使用commandArgs可执行文件。这个问题似乎与你正在处理的数据或你如何做的更相关。 – dmontaner
'print(args)'你可以把它放在适合你的任何地方,或者更方便你使用。这只是为了确保你正在阅读... – dmontaner