R 从数据帧中的一列获取某些值

R 从数据帧中的一列获取某些值,r,dplyr,R,Dplyr,让我们以著名的数据集-航班为例 我想有10个航班,最大的和最低的功能到达时间 我试着这样做: library(dplyr) #Highest values flights %>% group_by(air_time) %>% top_n(10, air_time) #Smallest values flights %>% group_by(air_time) %>% top_n(-10,air_time) 然而问题是我得到了一些非常奇怪的东西。这两个结果是

让我们以著名的数据集-航班为例

我想有10个航班,最大的和最低的功能到达时间

我试着这样做:

library(dplyr)
#Highest values

flights %>%
  group_by(air_time) %>%
  top_n(10, air_time)

#Smallest values 
flights %>%
group_by(air_time) %>%
top_n(-10,air_time)

然而问题是我得到了一些非常奇怪的东西。这两个结果是相同的。我认为使用
groupby
可能会有问题,但没有它也无法工作。

尝试dplyr中的slice\u min/\u max函数:

library(dplyr)
library(nycflights13)

data(flights)

#Largest values 
flights %>%
  dplyr::slice_max(order_by = arr_time, n = 10)

#Smallest values 
flights %>%
  dplyr::slice_min(order_by = arr_time, n = 10)

尝试dplyr中的slice_min/_max函数:

library(dplyr)
library(nycflights13)

data(flights)

#Largest values 
flights %>%
  dplyr::slice_max(order_by = arr_time, n = 10)

#Smallest values 
flights %>%
  dplyr::slice_min(order_by = arr_time, n = 10)

当您希望按
arr\u time
排列前10位值时,不应按它分组。尝试:

library(dplyr)

flights %>% 
  top_n(10, air_time) %>%
  select(air_time) %>%
  arrange(air_time)

#   air_time
#      <dbl>
# 1      671
# 2      671
# 3      675
# 4      676
# 5      676
# 6      679
# 7      683
# 8      686
# 9      686
#10      691
#11      695
库(dplyr)
航班%>%
排名靠前(10,播放时间)%>%
选择(空调时间)%>%
安排(空运时间)
#飞行时间
#      
# 1      671
# 2      671
# 3      675
# 4      676
# 5      676
# 6      679
# 7      683
# 8      686
# 9      686
#10      691
#11      695

航班%>%
排名靠前(-10,播放时间)%>%
选择(空调时间)%>%
安排(空运时间)
#飞行时间
#      
# 1       20
# 2       20
# 3       21
# 4       21
# 5       21
# 6       21
# 7       21
# 8       21
# 9       21
#10       21
#11       21
#12       21
#13       21
#14       21
#15       21
#16       21

top\n
保留领带,因此两行中都有超过10行。此外,
top\u n
已被替换为
slice\u min
/
max

当您希望在
arr\u时间之前获得前10个值时,您不应按它分组。尝试:

library(dplyr)

flights %>% 
  top_n(10, air_time) %>%
  select(air_time) %>%
  arrange(air_time)

#   air_time
#      <dbl>
# 1      671
# 2      671
# 3      675
# 4      676
# 5      676
# 6      679
# 7      683
# 8      686
# 9      686
#10      691
#11      695
库(dplyr)
航班%>%
排名靠前(10,播放时间)%>%
选择(空调时间)%>%
安排(空运时间)
#飞行时间
#      
# 1      671
# 2      671
# 3      675
# 4      676
# 5      676
# 6      679
# 7      683
# 8      686
# 9      686
#10      691
#11      695

航班%>%
排名靠前(-10,播放时间)%>%
选择(空调时间)%>%
安排(空运时间)
#飞行时间
#      
# 1       20
# 2       20
# 3       21
# 4       21
# 5       21
# 6       21
# 7       21
# 8       21
# 9       21
#10       21
#11       21
#12       21
#13       21
#14       21
#15       21
#16       21
top\n
保留领带,因此两行中都有超过10行。此外,
top\u n
已被替换为
slice\u min
/
max