r中的条件apply()

r中的条件apply(),r,conditional,R,Conditional,我正在努力根据数据框中的条件创建一个变量 我认为这段代码是不言自明的 DT$xp_ratio_y<- apply(DT,1,function(x) if(DT$driv_y_add_flg==1) { x=DT$driv_y_experience/DT$driv_y_age } else { x=0 } ) DT$xp\u ratio\u y我觉得你把事情弄得太复杂了。只需计算所有值,然后删除不需要的值: DT$xp_ratio_y

我正在努力根据数据框中的条件创建一个变量

我认为这段代码是不言自明的

DT$xp_ratio_y<- apply(DT,1,function(x) 
     if(DT$driv_y_add_flg==1) {
     x=DT$driv_y_experience/DT$driv_y_age
     } else {
     x=0
     }
) 

DT$xp\u ratio\u y我觉得你把事情弄得太复杂了。只需计算所有值,然后删除不需要的值:

DT$xp_ratio_y <- DT$driv_y_experience/DT$driv_y_age
DT$xp_ratio_y[DT$driv_y_add_flg !=1 ] <- 0

DT$xp\u比率\y您的代码根本不是自解释的。您
应用
a
函数(x)
但不使用
x
在函数中,您使用数据集
DT
的3列。这些操作可能会产生向量。另外,
if
中的条件是否抛出错误?如果
DT$driv\u y\u add\u flg
是一个0/1的值,您只需将它乘以
DT$driv\u y\u experience/DT$driv\u y\u age
就可以直接得到x值,而不需要if:x=(DT$driv\u experience/DT$driv\u y\u age)*DT$driv\u add\u flg`