有时候我们会碰到一些离散的条件,并根据条件进行相应的操作。我们下意识地会选择if树来实现,即通过很多if,else if条件来控制操作,如这样一组条件
if name then a
=="张三" ==0
=="李四" ==1
=="王五" ==2
=="赵六" ==3
常用的实现方式为:
if(name=="张三")}{
a=0
}else if(name=="李四"){
a=1
}……
显然代码过于繁琐,且不利于观看,此时我们可以将条件作为名称属性赋给结果向量,形成查找表(lookup table)进而简洁的获取赋值结果:
payouts<-c("张三"=0,"李四"=1,"王五"=2,"赵六"=3)
a=unname(payouts[name]) #unname返回对象的副本,但会将名称属性去除