如果目录的语句以特定字符开头

时间:2018-02-14 10:34:36

标签: r if-statement

我有一个脚本,我在其中调用R并根据我指定的目录,我希望它执行不同的过程。一个目录以L开头,另一个目录以S开头。我有许多以L或S开头的目录,它们都以不同的方式结束。

我在bash中指定目录并运行如下脚本:

./script L_dir

./script S_dir

因此,在我的R脚本中,我将其设置为:

args <- commandArgs(TRUE)
img_dir <- args[1]
if(img_dir == "^L*"){
  do_process_1 
} else {
  do_process_2
} 

一切正常,但无论我指定哪个目录,调用的进程将始终为do_process_2。

我看过this question并尝试调整它,但无法让它发挥作用。

1 个答案:

答案 0 :(得分:0)

将我的代码更改为

if(grepl("^LM*", img_dir)){
  do_process_1
  } else {
  do_process_2
}

它奏效了。如果将其更改为上述内容并且仍然执行process_2,请务必小心。这可能是因为你要找的东西,在我的情况下^ L *,也可能在你的第二个目录名中,即dir_L = LMNOP,dir_S = STUVLJH。但是,一旦我指定了^ LM *它就完成了我想要它做的事情。