中年R数据分析:case_when的用法


今天看了case_when的用法 , 基本上和ifelse差不多 , 但是idelse只有2个判断结果:TRUE or FALSE , 这个在实际数据分析中肯定是不够用的 , 所以今天给大家写写case_when.
实例操练
先来看一个实际的使用例子 , 感受一下:
【中年R数据分析:case_when的用法】x 0 ~ "Positive", TRUE ~ "Zero")#&gt [1] "Negative" "Negative" "Zero" "Positive" "Positive"
上面的输出如果用ifelse将会很麻烦 , 你得写一个嵌套语句出来 , 用casewhen就很直观了 。 另外的用的比较多的就是定义分类变量的时候 , 比如 , 我们现在想看一看英国不同地区的谋杀率 , 首先我们要根据不同的标准将所有的州划给地区New England, West Coast, South, and other , 这个时候就可以使用case_when.
murders %&gt% mutate(group = case_when( abb %in% c("ME", "NH", "VT", "MA", "RI", "CT") ~ "New England", abb %in% c("WA", "OR", "CA") ~ "West Coast", region == "South" ~ "South", TRUE ~ "Other")) %&gt% group_by(group) %&gt% summarize(rate = sum(total) / sum(population) * 10^5) #&gt `summarise()` ungrouping output (override with `.groups` argument)#&gt # A tibble: 4 x 2#&gt group rate#&gt #&gt 1 New England 1.72#&gt 2 Other 2.71#&gt 3 South 3.63#&gt 4 West Coast 2.90
解释一下上面的代码:如果abb属于"ME", "NH", "VT", "MA", "RI", "CT"这几个州 , 我们将它分给"New England"地区 , 相应的如果在"WA", "OR", "CA"这几个州就是"West Coast"地区 , 这样就划分好了我们的分类变量-group 。
然后根据group进行分组 , 使用summarize得到各个地区的谋杀率 。 完美!
小结
case_when在定义分类变量的时候很好使 , 感谢大家耐心看完 。 发表这些东西的主要目的就是督促自己 , 希望大家关注评论指出不足 , 一起进步 。 内容我都会写的很细 , 用到的数据集也会在原文中给出链接 , 你只要按照文章中的代码自己也可以做出一样的结果 , 一个目的就是零基础也能懂 , 因为自己就是什么基础没有从零学Python和R的 , 加油 。
(站外链接发不了 , 请关注后私信回复“数据链接”获取本***所有使用数据)
中年R数据分析:case_when的用法
本文插图
【来源:没有酒的酒窝】
声明:转载此文是出于传递更多信息之目的 。 若有来源标注错误或侵犯了您的合法权益 , 请作者持权属证明与本网联系 , 我们将及时更正、删除 , 谢谢 。邮箱地址:newmedia@xxcb.cn