如何检查参数是否已正确传递到Windows上的Rscript

神经元

我正在尝试编写一个使用Rscript运行时带有3个参数的R脚本:输入文件名,是否具有标题(值是'header'或'no_header',以及正整数(替换数) ;它用于引导应用程序。)因此,当我以这种方式运行它时:

Rscript bootstrapWithReplacement.R survival.csv header 50

它应该在运行前检查是否:1)该脚本确实包含3个参数;2)第一个参数是否为文件;3)第二个参数是否具有'header'或'no_header'值,以及4)如果传递的数字为正整数。

到目前为止,这是我的代码:

pcArgs      <- commandArgs()
snOffset    <- grep('--args', pcArgs)
inputFile <- pcArgs[snOffset+1]
headerSpec <- pcArgs[snOffset+2]    ## header/no_header
numberOfResamples <- pcArgs[snOffset+3] ## positive integer

check.integer <- function(N){
    !length(grep("[^[:digit:]]", as.character(N)))
}

if (!file_test("-f",inputFile)) {stop("inputFile not defined. Proper use: Rscript bootstrapWithReplacementFile.R survival.csv header 50.")}
if (!exists("headerSpec")) {stop("headerSpec not defined. Proper use: Rscript bootstrapWithReplacementFile.R survival.csv header 50.")} 
if (!exists("numberOfResamples")) {stop("numberOfResamples not defined. Proper use: Rscript bootstrapWithReplacementFile.R survival.csv header 50.")} 

if ((headerSpec != 'header') == TRUE & (headerSpec != 'no_header') == TRUE) {stop("headerSpec not properly defined. Correct values: 'header' OR 'no_header'.")}
if (check.integer(numberOfResamples) != TRUE | (numberOfResamples>0) != TRUE) {stop("numberOfResamples not properly defined. Must be an integer larger than 0.")}


if (headerSpec == 'header') {
    inputData<-read.csv(inputFile)
    for (i in 1:numberOfResamples) {write.csv(inputData[sample(nrow(inputData),replace=TRUE),], paste("./bootstrap_",i,"_",inputFile,sep=""), row.names=FALSE)}
}

if (headerSpec == 'no_header') {
    inputData<-read.table(inputFile,header=FALSE)
    for (i in 1:numberOfResamples) {write.table(inputData[sample(nrow(inputData),replace=TRUE),], paste("./bootstrap_",i,"_",inputFile,sep=""),
 sep=",", row.names=FALSE, col.names=FALSE)}
}

我的问题是,检查文件是否存在有效,但对于标头或整数则无效。

另外,一开始如何检查所有三个参数是否都已传递?

谢谢!

里奇棉花

正如文森特(Vincent)所说,您应该使用trailingOnly参数commandArgs来简化事情。
正如康拉德所说,永远,永远,永远都不能直接与TRUE和作比较FALSE
同样,assertive用于做断言。

library(assertive)
library(methods)    
cmd_args <- commandArgs(TRUE)

if(length(cmd_args) < 3)
{
  stop("Not enough arguments. Please supply 3 arguments.")
}
inputFile <- cmd_args[1]
if (!file_test("-f", inputFile)) 
{
  stop("inputFile not defined, or not correctly named."
}
headerSpec <- match.arg(cmd_args[2], c("header", "no_header"))
numberOfResamples <- as.numeric(cmd_args[3])
assert_all_numbers_are_whole_numbers(numberOfResamples)
assert_all_are_positive(numberOfResamples)

message("Success!")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查Windows墙纸是否已更改

来自分类Dev

如何检查anaconda软件包是否已正确安装

来自分类Dev

jasmine jquery测试以检查是否已将正确的参数传递给方法

来自分类Dev

如何在Windows上检查stdout是否已重定向到NUL(在Linux上又称为/ dev / null)?

来自分类Dev

检查传递的参数是否存在

来自分类Dev

如何检查在类中传递的参数是否正确

来自分类Dev

如何检查Mac上是否已正确安装PyQt5?

来自分类Dev

如何使用Perl检查参数是否正确?

来自分类Dev

如何检查解密是否正确?

来自分类Dev

检查特定参数值是否作为kwargs传递的正确方法

来自分类Dev

如何检查参数是否已正确传递到Windows上的Rscript

来自分类Dev

Delphi 7:如何检查Windows主题是否已启用?

来自分类Dev

如何检查模型上的任何属性是否已更改

来自分类Dev

检查字符串是否已传递到列表中的方法

来自分类Dev

如何检查在类中传递的参数是否正确

来自分类Dev

Java:如何检查程序是否已正确启动?

来自分类Dev

如何检查Mac上是否已正确安装PyQt5?

来自分类Dev

如何使用Perl检查参数是否正确?

来自分类Dev

如何检查Windows 8.1 PC是否已连接到Internet?

来自分类Dev

如何检查变量是否已传递到Bash中的函数?

来自分类Dev

如何检查参数是否传递给bash脚本

来自分类Dev

检查参数是否正确传递给Shell脚本

来自分类Dev

如何检查OSGi捆绑包中的类是否已正确卸载?

来自分类Dev

如何检查传递到shell脚本中的参数数量是否恰好是2?

来自分类Dev

如何检查图像URL是否已输入到提示-JavaScript

来自分类Dev

检查正确的参数在Phoenix中传递

来自分类Dev

如何检查用户是否已登录以及是否未重定向到登录屏幕

来自分类Dev

参数未正确传递到函数中

来自分类Dev

Hanami - 如何正确检查模型是否已持久化?

Related 相关文章

  1. 1

    如何检查Windows墙纸是否已更改

  2. 2

    如何检查anaconda软件包是否已正确安装

  3. 3

    jasmine jquery测试以检查是否已将正确的参数传递给方法

  4. 4

    如何在Windows上检查stdout是否已重定向到NUL(在Linux上又称为/ dev / null)?

  5. 5

    检查传递的参数是否存在

  6. 6

    如何检查在类中传递的参数是否正确

  7. 7

    如何检查Mac上是否已正确安装PyQt5?

  8. 8

    如何使用Perl检查参数是否正确?

  9. 9

    如何检查解密是否正确?

  10. 10

    检查特定参数值是否作为kwargs传递的正确方法

  11. 11

    如何检查参数是否已正确传递到Windows上的Rscript

  12. 12

    Delphi 7:如何检查Windows主题是否已启用?

  13. 13

    如何检查模型上的任何属性是否已更改

  14. 14

    检查字符串是否已传递到列表中的方法

  15. 15

    如何检查在类中传递的参数是否正确

  16. 16

    Java:如何检查程序是否已正确启动?

  17. 17

    如何检查Mac上是否已正确安装PyQt5?

  18. 18

    如何使用Perl检查参数是否正确?

  19. 19

    如何检查Windows 8.1 PC是否已连接到Internet?

  20. 20

    如何检查变量是否已传递到Bash中的函数?

  21. 21

    如何检查参数是否传递给bash脚本

  22. 22

    检查参数是否正确传递给Shell脚本

  23. 23

    如何检查OSGi捆绑包中的类是否已正确卸载?

  24. 24

    如何检查传递到shell脚本中的参数数量是否恰好是2?

  25. 25

    如何检查图像URL是否已输入到提示-JavaScript

  26. 26

    检查正确的参数在Phoenix中传递

  27. 27

    如何检查用户是否已登录以及是否未重定向到登录屏幕

  28. 28

    参数未正确传递到函数中

  29. 29

    Hanami - 如何正确检查模型是否已持久化?

热门标签

归档