切换语句匹配任何一组案例

Cap*_*rog 1 r switch-statement

作为一个例子,我switch()在R中有一个声明,它检查一个字母是否是一个元音,如下所示:

switch(trial_code[i],
     'a' = {letter[i] <- 'vowel'
     },
     'e' = {letter[i] <- 'vowel'
     },
     'i' = {letter[i] <- 'vowel'
     },
     'o' = {letter[i] <- 'vowel'
     },
     'u' = {letter[i] <- 'vowel'
     },
     {letter[i] <- 'consonant'}
)
Run Code Online (Sandbox Code Playgroud)

我原本以为必须有一些方法可以同时检查多个案例,以整理我的代码.我试过以下,没有运气:

switch(trial_code[i],
     'a' | 'e' | 'i' | 'o' | 'u' = {letter[i] <- 'vowel'
     },
     {letter[i] <- 'consonant'}
)
Run Code Online (Sandbox Code Playgroud)

检查switch()语句对列表中的任何值的正确语法是什么?

编辑:我应该指出这是一个MWE.我试图找到解决使用switch语句对多个可能的匹配情况的问题的解决方案; 我不是想在我的实际节目中给元音或辅音分配信件.

Bri*_*ggs 8

帮助页面switch介绍了如何执行此操作.

如果EXPR求值为字符串,则该字符串(确切地)与元素的名称匹配....如果匹配,那么除非缺少该元素,否则将对该元素进行评估,在这种情况下,将评估下一个非缺失元素...

然后继续举例说明你的情况

switch(trial_code[i],
     'a' = ,
     'e' = ,
     'i' = ,
     'o' = ,
     'u' = {letter[i] <- 'vowel'},
     {letter[i] <- 'consonant'}
)
Run Code Online (Sandbox Code Playgroud)

这可能是也可能不是解决问题的最佳方法,但这是指定多个值以获得相同效果的方法.