提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
在我们进行数据分析时,有时不能把计量数据简单的按照某些截断值进行分组,比如腹部肥胖的定义(中国):男性腰围大于等于85为腹部肥胖,女性腰围大于等于80为腹部肥胖,这时可以借助**ifelse()**函数来实现。
1. 生成数据
我们生成一组数据,用来学习多条件下的数据分组。为尽可能考虑真实数据的情况,我在数据中添加了两处缺失值**“NA”**。
sex:1男2女;WC:腰围。
其中,男性腰围≥85为腹部肥胖,女性腰围≥80为腹部肥胖
data<-read.table(textConnection('
id sex wc
1 2 72.97
2 2 58.59
3 1 57.89
4 1 68.97
5 1 NA
6 2 90.31
7 1 67.91
8 1 93.42
9 2 69.43
10 1 81.35
11 1 93.24
12 1 NA
13 2 59.35
14 2 63.5
15 2 61.01
16 1 76.09
17 2 95.5
18 1 60.92
'), header=TRUE)
然后看一下我们生成的数据
2. 按条件分组代码
# 男性腰围大于等于90为腹部肥胖,女性腰围大于等于85为腹部肥胖
data$AO<-ifelse(is.na(data$wc),NA,
ifelse(with(data,sex==1&wc<85),"No",
ifelse(with(data,sex==2&wc<80),"No","Yes")))
3. 最终结果
看一下数据处理的结果
![(https://img-blog.csdnimg.cn/8f6fe228e19e4abaa1353718a1b2c942.png)