1. 在tidyr包中有一个who数据集,是世界卫生组织调查的结核病数据,这是一个不符合整洁数据的数据集,我们要把它变整洁。首先用who查看一下数据是什么样的(提示:>后直接输入who并回车);然后查看who的说明(?who);说明中有关于变量的描述,该数据集共有60列,第5-60列包含了3个变量,“new_”后面的代码标识不同的诊断方法“method of diagnosis”(rel= relapse, sn= negative pulmonary smear, sp= positive pulmonary smear, ep= extra pulmonary),数字前面紧跟的是性别代码(m,f),数字代表年龄分组(0-14,15-24,25-34…55-64,65+)。 1) 假如我们对采用relapse方法检测到的记录感兴趣,选取字段iso2,year,newrel_m014:newrel_f65; 2) 试用gather和separate将它转成整洁的数据集。可以分步做,最后的结果数据集包含6个字段: iso2,year,method=”rel”,gender,agegroup=(”014”…”65”) ,count。 提示:你需要用到的函数有select(),gather(),separate(),mutate,substr(), length()。 3) agegroup字段能够用parase_number函数析出?为什么?
时间: 2024-04-21 21:26:21 浏览: 81
脑肿瘤图片数据集.rar
5星 · 资源好评率100%
1. 首先输入who命令查看数据:
```
> who
```
2. 然后输入 ?who 查看说明。
3. 选取字段iso2,year,newrel_m014:newrel_f65:
```
select(iso2, year, newrel_m014:newrel_f65)
```
4. 使用gather将它转成整洁的数据集:
```
gather(key = "agegroup", value = "count", newrel_m014:newrel_f65, na.rm = TRUE)
```
5. 使用separate将agegroup字段分成gender和agegroup两个字段,并将method字段设置为"rel":
```
separate(col = agegroup, into = c("gender", "agegroup"), sep = 2) %>%
mutate(method = "rel")
```
6. 最终整洁的数据集包含6个字段: iso2,year,method=”rel”,gender,agegroup=(”014”…”65”) ,count。
3. 可以使用parse_number函数析出agegroup字段中的数字,因为agegroup字段中的值都是由数字组成的字符串,parse_number函数可以将字符串中的数字解析出来。例如,parse_number("014") 的结果为14。
阅读全文