中年R数据分析:case_when的用法
今天看了case_when的用法 , 基本上和ifelse差不多 , 但是idelse只有2个判断结果:TRUE or FALSE , 这个在实际数据分析中肯定是不够用的 , 所以今天给大家写写case_when.
实例操练
先来看一个实际的使用例子 , 感受一下:
【中年R数据分析:case_when的用法】x 0 ~ "Positive", TRUE ~ "Zero")#> [1] "Negative" "Negative" "Zero" "Positive" "Positive"
上面的输出如果用ifelse将会很麻烦 , 你得写一个嵌套语句出来 , 用casewhen就很直观了 。 另外的用的比较多的就是定义分类变量的时候 , 比如 , 我们现在想看一看英国不同地区的谋杀率 , 首先我们要根据不同的标准将所有的州划给地区New England, West Coast, South, and other , 这个时候就可以使用case_when.
murders %>% 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")) %>% group_by(group) %>% summarize(rate = sum(total) / sum(population) * 10^5) #> `summarise()` ungrouping output (override with `.groups` argument)#> # A tibble: 4 x 2#> group rate#> #> 1 New England 1.72#> 2 Other 2.71#> 3 South 3.63#> 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的 , 加油 。
(站外链接发不了 , 请关注后私信回复“数据链接”获取本***所有使用数据)
本文插图
【来源:没有酒的酒窝】
声明:转载此文是出于传递更多信息之目的 。 若有来源标注错误或侵犯了您的合法权益 , 请作者持权属证明与本网联系 , 我们将及时更正、删除 , 谢谢 。邮箱地址:newmedia@xxcb.cn
- 女性健康|女人过了中年,为啥经常会感到小腿没力气?
- 中年|老小区加装电梯,六七楼业主太难了,一楼的灵魂拷问让他们沉默了
- 中年|谷歌生草机,翻译《我的世界》20变,连亲妈都不认识
- 中年|一个电饭煲就能做出的花样焖饭合集,简单又省事
- 【婚姻】中年人的婚姻,最重要的不是爱与不爱,而是这三点
- 中年|馋死人了!好吃的青菜鸡蛋面的详细介绍!快进来看看吧!
- 中年|业主每天回家被盘问, 动手打了保安一顿, 网友: 是保安的问题
- 【离婚】人到中年,不复婚不二婚,这位45岁离婚女人,说出了最好的活法
- 人体|适合常吃3种食物,降压减脂,清理肠胃,增强抵抗力人到中年
- 火爆新闻|现在王小丫也已经是52岁的中年女人了,当初的容貌也不复存在,每天都坚持自律的生活