0

我目前正在通过 R for Data Science,我似乎无法让 Select 函数显示某些列。要开始这个练习,我首先需要加载:

library(nycflights13)
library(tidyverse)

本书提供的代码之一是:

flights_sml <- select(flights, 
  year:day, 
  ends_with("delay"), 
  distance, 
  air_time
)
mutate(flights_sml,
  gain = dep_delay - arr_delay,
  speed = distance / air_time * 60
)

此代码的结果将是:

代码结果

可以在此图像中看到由 mutate 函数创建的列。但是,当我尝试使用 select 函数来选择变量gain时:

select(flights_sml, gain)

我收到一条错误消息,指出.f(.x[[i]], ...) 中的错误:找不到对象“增益”。

但是,如果我对另一个变量(例如day)做同样的事情:

select(flights_sml, day)

如下图所示,我不会有任何问题:

当天结果

我不明白为什么会这样,如果有人能对此有所了解,我将不胜感激。

4

1 回答 1

0

您没有将 mutate 的结果分配给任何东西。你需要做

flights_sml <- mutate(flights_sml,
  gain = dep_delay - arr_delay,
  speed = distance / air_time * 60
)

作为您的第一个陈述的一部分,您可以这样做

flights_sml <- select(flights, 
  year:day, 
  ends_with("delay"), 
  distance, 
  air_time
) %>%
mutate(
  gain = dep_delay - arr_delay,
  speed = distance / air_time * 60
)

这使用pipe(%>%) 将您的选择结果通过管道传输到 mutate 调用中,并将其全部分配回flights_sml

于 2020-03-31T01:56:44.037 回答