用r语言完成,在flights中,按dest分组,考虑arr_delay列,去除dest列中NA值。将dest按字母顺序,由小至大,求每组中arr_delay>0的比例,分三种情况,不去除NA值,去除NA值,NA值的个数只按50%计算。如(1,2,-1,NA,NA)计算结果0.4, 0.666,0.5. 三列的名字为prop1,prop2, prop3. 并计算两者的差值diff1=prop2-prop1 和diff2=prop3-prop1(最后列名字不能错,顺序也不能错,dest,prop1,prop2,prop3,diff1,diff2)要求tibble中不含NA值
时间: 2023-09-17 22:14:22 浏览: 133
OpenDDS-latest.rar_cannot8k1_flights8y_openDDS开发_opendds中文教程_ope
5星 · 资源好评率100%
以下是代码实现:
```r
library(dplyr)
flights %>%
filter(!is.na(dest)) %>%
group_by(dest) %>%
summarize(prop1 = mean(arr_delay > 0),
prop2 = mean(arr_delay > 0, na.rm = TRUE),
prop3 = mean(arr_delay > 0, na.rm = sum(!is.na(arr_delay))/2)) %>%
arrange(dest) %>%
mutate(diff1 = prop2 - prop1,
diff2 = prop3 - prop1) %>%
select(dest, prop1, prop2, prop3, diff1, diff2)
```
首先使用`filter`函数去除`dest`列中的NA值,然后使用`group_by`函数按照`dest`分组,再使用`summarize`函数计算每组中`arr_delay>0`的比例,分别对应于`prop1`、`prop2`和`prop3`。其中,`prop1`不去除NA值,`prop2`去除NA值,`prop3`将NA值按照50%计算。最后使用`arrange`函数将`dest`按照字母顺序排序,再使用`mutate`函数计算出`diff1`和`diff2`,最后使用`select`函数选择需要输出的列。
阅读全文