R开关()/如何使几个字符串导致相同的代码?

时间:2014-08-06 14:11:00

标签: r

arg可以使用多个不同的字符串值"A", "B", "three", "four"

我想使用switch()命令为arg == "A" || arg == "B"执行一批代码,为arg == "three" || arg == "four"执行另一批代码。但我不想两次打字,如:

switch(arg,
       A = {#code block 1
       },
       B = {#code block 1
       },

       three = {#code block 2
       },
       four = {#code block 2
       }
)

我可以用

ifelse (arg %in% list("A", "B"), #code block 1,
        if (arg %in% list("three", "four")) #code block 2
)

但有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:2)

这是一种方式:

switch(switch(arg, B='A', four='three', arg),
       A = {#code block 1
       },
       three = {#code block 2
       }

)