创建不同的变量集,并使用if else分配它们

时间:2014-05-01 12:09:36

标签: r if-statement

我有一组变量。对于不同的场景,我想使用不同的设置。所以我想知道是否有一种方法可以不使用if-else语句?以下是我尝试使用if-else方法实现的目标:

if(broker=="A"){
  brokeragefutures=aaaa
  brokerageoptions=bbbb
  STT=cccc

} 
else if(broker=="B"){
  brokeragefutures=xxxx
  brokerageoptions=yyyy
  STT=zzzz
}
  ....
  ....


  ....
}

所以最后,我只使用代理名称,变量将自动用于我的计算。这将使尝试不同的场景变得非常容易。

我的问题是,有没有比使用if-else循环更有效的方法?

感谢。
Shivam

2 个答案:

答案 0 :(得分:2)

这看起来像list个变量。假设您拥有所有可用数据,请创建一个list,如mylist <- list('A'=c(aaaa,bbbbb,ccc),'B'=c(xxxxx,yyyy,zz)),依此类推,每个代理都有一个列表元素。然后检索感兴趣的数据,只需mylist$B代理商&#34; B&#34;等等。

答案 1 :(得分:0)

单个经纪商的解决方案并分配给一组值

根据卷的不同,我建议使用一个映射表,它允许您检索每个实例中所需的相应变量。然后,您可以使用get来检索所需的变量。

以下是与您的代码

一致的简短示例
broker<-"B"
#Setup of initial variables
aa<-1
bb<-2
#Production of your mapping table
mapping<-data.frame(broker=LETTERS[1:2],brokeragefutures=c("aa","bb"),stringsAsFactors=FALSE)
#Use get on the corresponding variable name for the broker
brokeragefutures<-get(mapping[mapping$broker==broker,2])