【发布时间】:2021-07-13 19:07:21
【问题描述】:
有一个特定的反复出现的问题非常令人沮丧,我无法在 dplyr 中找出正确的方法。
如何让 dplyr 将“结果”保存为数值,而不是 tibble 数据框?
代码:
library(tidyverse)
library(nycflights13)
flights <- flights
a <- flights %>% filter(carrier == "AA") %>% length()
b <- flights %>% filter(carrier == "AA") %>% mean()
c <- flights %>% filter(carrier == "AA") %>% summarise(mean(hour))
这三行代表了我的挫败感。
一个。为什么'a'起作用,即它返回一个值? (额外的问题,为什么在全球环境中 19 旁边有字母 L?)
b.为什么这不起作用?如果您将其与上面的行进行比较,它似乎“应该”。
c。这有点的工作原理是我得到了平均值 - 但我如何将它作为一个值来获取(我想在其他计算中使用这个值,所以我不想要一个数据框)。
很明显,dplyr 有一些细微差别,到目前为止我还没有理解。 任何帮助将不胜感激!
解决方案:
mean <- flights %>% filter(carrier == "AA") %>% pull(hour) %>% mean()
pull() 提取单列
L 表示整数
谢谢大家!
【问题讨论】:
-
L 表示整数。
-
这里有一些关于从 dplyr 获取矢量输出的信息:stackoverflow.com/questions/27149306/…