R中的切换语句(解包参数)

时间:2013-03-25 22:49:55

标签: r

谷歌搜索对此没有多大回报。你如何在R中解包参数?

例如,如果我尝试在R中使用开关

switch("AA",c("AA"=5,"BB"=6))

我会回到c("AA"=5,"BB"=6)实际上,我想要5。

基本上,我希望能够使用矢量映射进行switch("AA","AA"=5,"BB"=6)

4 个答案:

答案 0 :(得分:3)

这是一种解决方法,但请尝试:

do.call("switch", append(list("AA"), list("AA"=5, "BB"=6)))

do.call()允许您将参数列表传递到switch()

答案 1 :(得分:3)

这就是switch的用途。第一个参数被评估并与后续的pairlists的第一个元素匹配:

 aa <- "AA"
 switch(aa,"AA"=5,"BB"=6)
#[1] 5
 switch("BB","AA"=5,"BB"=6)
#[1] 6

至少这是'角色'论点的策略。数字参数的过程是不同的。需要仔细阅读?switch的详细信息部分。

答案 2 :(得分:2)

你的例子很短暂,可能会以这种方式获得所需的功能:

my.vector = c("AA"=5,"BB"=6)
my.vector[names(my.vector ) == "AA"]

AA 
 5 

答案 3 :(得分:2)

> c("AA"=5,"BB"=6)["AA"]
AA 
 5 
> c("AA"=5,"BB"=6)["BB"]
BB 
 6 
相关问题