在R语言中基于多条件创建二元列的报错问题求助
解决R中dplyr创建二元新列的报错问题
你遇到的argument "yes" is missing, with no default错误,是因为代码末尾缺少两个闭合括号:一个用来结束ifelse()函数,另一个用来结束mutate()函数,导致R无法识别完整的参数结构。
修复后的硬编码均值代码
直接用你已计算好的均值,补全括号即可:
library(dplyr) df = data.frame( var1 = c(0, 4, 8, 2, 4, 10, 2, 3, 2, 9), var2 = c(9, 10, 5, 4, 7, 8, 6, 9, 7, 2), var3 = c(3, 3, 5, 5, 4, 5, 5, 2, 2, 1) ) df %>% dplyr::mutate( newvar = ifelse( var1 > 4.4 & (var2 > 6.7 | var3 > 3.5), "Yes", "No" ) )
更灵活的动态计算均值方法
如果不想手动输入均值,可以让R自动计算变量均值,数据更新时无需修改代码:
library(dplyr) df %>% mutate( newvar = ifelse( var1 > mean(var1) & (var2 > mean(var2) | var3 > mean(var3)), "Yes", "No" ) )
运行后会生成符合要求的newvar列:当var1高于自身均值,且var2高于自身均值或var3高于自身均值时取值为"Yes",否则为"No"。
内容的提问来源于stack exchange,提问作者Seafra Barrett
相关产品推荐
相关产品推荐

