我希望尽可能高效地编写以下场景的逻辑代码。
我有4个变量,它们是序数变量,有5类,从0到4。
本质上,如果任何选项不丢失,我希望在困难函数中使用那里的值,对于缺少的选项,我希望困难函数参数为0.我在努力写这段代码
值得注意的是,没有实际数据。我所使用的价值观是调查结果,因此它们一次只出现一次。
总体难度等级函数如下:
diff.fun<-function(H2I,H2H,H2C,H2G) {
ifelse(H2I == 4 & H2H == 4 & H2C == 4 & H2G == 4 ,6,
ifelse(H2G == 4 | H2C == 4 ,5,
ifelse (H2C == 3 | H2G == 3 ,4,
ifelse((H2I>=3 | H2H>=3) & H2C<3 & H2C<3,3,
ifelse((H2I==2 | H2H==2 | H2C==2 | H2G==2) & (H2I<3 & H2H<3 & H2C<3 & H2G<3),2,
ifelse ((H2I==1 | H2H==1 | H2C==1 | H2G==1 ) & (H2I<2 & H2H<2 & H2C<2 & H2G<2),1,
ifelse(H2I == 0 & H2H == 0 & H2C ==0 & H2G == 0,0,NA)))))))
}任何帮助都是非常感谢的。我对R相当陌生,我在这里的逻辑上有点挣扎。如有需要,我乐意提供更多详情。
编辑:
例如,
如果H2I和H2H没有丢失,而H2C和H2G失踪了,我该如何告诉diff.fun:
diff.fun(H2I,H2H,0,0)。
基本上,函数之前的代码必须确定哪些困难成分是不丢失的,并将这些值提供给函数,而丢失的部分必须为零。
发布于 2018-02-22 15:38:22
如果我正确理解了您的问题,您可以在定义函数时为缺少的参数设置默认值:
diff.fun<-function(H2I = 0,H2H = 0,H2C = 0,H2G = 0){...}现在,当没有为一个或多个参数提供值时,它是0作为默认值,例如:
diff.fun(H2I = 1, H2H = 2, H2G = 3)假定H2C为0
https://stackoverflow.com/questions/48931188
复制相似问题