Error in `summarize()`: ℹ In argument: `num_airports = n_distinct(arrival)`. ℹ In group 1: `year = 2013`, `month = 1`, `day = 1`, `dep_interval = "上午"`. Caused by error in `list2()`: ! object 'arrival' not found Backtrace: 1. ... %>% ... 11. dplyr::n_distinct(arrival) 12. vctrs::df_list(...) 13. rlang::list2(...)
时间: 2024-01-27 15:04:35 浏览: 231
这个错误信息看起来是使用dplyr包中的summarize()函数时出现的错误。错误提示是在第一个分组中的`num_airports = n_distinct(arrival)`这一行,其中`arrival`对象未被找到。这个错误可能是由于在使用summarize()函数之前没有正确地定义或加载`arrival`对象,或者在dplyr管道中的其他步骤中对`arrival`对象进行了错误的操作导致的。您可以检查代码中是否正确地定义和加载了`arrival`对象,并确认在使用它之前没有对它进行意外的操作。
相关问题
帮我修改以下代码的错误:library(nycflights13) library(dplyr) flights <- na.omit(flights, cols = c("dep_time")) flights$dep_interval <- ifelse(flights$dep_time >= 601 & flights$dep_time <= 1200, "上午", ifelse(flights$dep_time > 1200 & flights$dep_time <= 1800, "下午", ifelse(flights$dep_time > 1800 & flights$dep_time <= 2400, "晚上", ifelse(flights$dep_time > 1 & flights$dep_time <= 600, "凌晨", NA)))) flights_new <- flights %>% na.omit() %>% group_by(year, month, day, dep_interval) %>% summarize("delay_mean" = mean(arr_delay, na.rm = TRUE), "delay_var" = var(arr_delay, na.rm = TRUE), "dest_count" = n_distinct(dest)) flights_select <- flights_new %>% filter(mean_arr_delay <= 30, num_airports >= 50) %>% arrange(desc(mean_arr_delay))
这段代码的问题在于`filter()`函数中引用了一个名为`mean_arr_delay`的未定义对象,正确的对象名应该是`delay_mean`。此外,在`filter()`函数中引用了一个名为`num_airports`的未定义对象。我们需要在`summarize()`函数中增加一个名为`num_airports`的参数,以便正确引用`dest_count`列。
请使用以下代码替换最后一行:
```
flights_select <- flights_new %>%
filter(delay_mean <= 30, dest_count >= 50) %>%
arrange(desc(delay_mean))
```
这里我们将`mean_arr_delay`改为`delay_mean`,并将`num_airports`改为`dest_count`,以与之前的`summarize()`函数中的列名匹配。
现在,代码应该可以成功运行并产生一个数据框,其中按平均延误降序排列,并且平均延误小于或等于30分钟,出发机场数量大于或等于50个。
帮我修改以下代码的错误:library(nycflights13) library(dplyr) flights <- na.omit(flights, cols = c("dep_time")) flights$dep_interval <- ifelse(flights$dep_time >= 601 & flights$dep_time <= 1200, "上午", ifelse(flights$dep_time > 1200 & flights$dep_time <= 1800, "下午", ifelse(flights$dep_time > 1800 & flights$dep_time <= 2400, "晚上", ifelse(flights$dep_time > 1 & flights$dep_time <= 600, "凌晨", NA)))) flights_new <- flights %>% na.omit() %>% group_by(year, month, day, dep_interval) %>% summarize("delay_mean" = mean(arr_delay, na.rm = TRUE), "delay_var" = var(arr_delay, na.rm = TRUE), "dest_count" = n_distinct(arrival))
这段代码的问题在于在`summarize()`函数中引用了一个`arrival`对象,但是在代码中并没有定义或加载它。您需要在`summarize()`函数中增加一个`arrive`参数,以便正确引用`arrival`对象。请使用以下代码替换最后一行:
```
flights_new <- flights %>% na.omit() %>%
group_by(year, month, day, dep_interval) %>%
summarize("delay_mean" = mean(arr_delay, na.rm = TRUE),
"delay_var" = var(arr_delay, na.rm = TRUE),
"dest_count" = n_distinct(dest))
```
这里我们将`n_distinct(arrival)`改为`n_distinct(dest)`,因为`arrival`对象未定义。现在,代码应该可以成功运行并生成一个包含`delay_mean`、`delay_var`和`dest_count`列的数据框,其中每个行代表一个特定日期和时间段的统计数据。
阅读全文