“ if else”语句在语句中重复第一个值,而不是为每个语句计算

时间:2018-12-31 10:07:48

标签: r

我想在Tibble中创建一个新列,该列确定每个移动性得分对索引得分的贡献。

我使用了以下代码:

#Add new column for each EQ5D measure contribution
mobility_contribution=if(combined_data$mobility==1){0}else
  if(combined_data$mobility==2){0.058}else 
if(combined_data$mobility==3){0.076}else 
  if(combined_data$mobility==4){0.207}else 
    if(combined_data$mobility==5){0.274}

第一行的迁移率得分为4(即输出应为0.207)。但是,即使迁移率得分发生变化,新列也会在所有后续行中重复0.207。

我该如何解决?

谢谢! 凯

2 个答案:

答案 0 :(得分:1)

我不是R专家,但是我的直觉是尝试这样做:

mapping <- Vectorize(function(mobility){
    return switch(mobility,0,0.058,0.076,0.207,0.274)
})

,然后将此功能应用于您的列(我不确定如何最好地对Tibble进行此操作,但这将是这样的:)

mobility_contribution <- lapply(combined_data$mobility, mapping)

一些链接:

答案 1 :(得分:1)

我希望嵌套ifelse可以使用

override func viewDidLoad() {
            super.viewDidLoad()


            if AppConstants.sharedInstance.centralManager == nil{
                AppConstants.sharedInstance.centralManager = CBCentralManager(delegate: self, queue: nil)
            }
            else
            {
                centralManagerDidUpdateState(AppConstants.sharedInstance.centralManager!)
            } 
}

请尝试这个