R 使用slice()作为[]的替代方法
据我所知,R 使用slice()作为[]的替代方法,r,dplyr,R,Dplyr,据我所知,slice()应该相当于在方括号内按数字选择行。有人能解释一下为什么我在下面的代码中得到两个不同的结果吗 library(nycflights13) library(tidyverse) flights %>% group_by(dest) %>% count(sort = TRUE) -> top_dest top_dest[1:20,] top_dest %>% slice(1:20) 此外,我想知道我应该使用什么来替换方括号并与管道功能相结合(这
slice()
应该相当于在方括号内按数字选择行。有人能解释一下为什么我在下面的代码中得到两个不同的结果吗
library(nycflights13)
library(tidyverse)
flights %>% group_by(dest) %>% count(sort = TRUE) -> top_dest
top_dest[1:20,]
top_dest %>% slice(1:20)
此外,我想知道我应该使用什么来替换方括号并与管道功能相结合(这样我就不需要两个命令行,只需要一个)。得到不同结果的原因是因为您的数据是分组的。因此,
slice
为每个dest
选择20行。分组对top\u dest[1:20,]
没有影响。您可以ungroup
dataframe,然后选择20行以获得相同的结果
library(dplyr)
top_dest %>% ungroup %>% slice(1:20)
得到不同结果的原因是数据分组。因此,
slice
为每个dest
选择20行。分组对top\u dest[1:20,]
没有影响。您可以ungroup
dataframe,然后选择20行以获得相同的结果
library(dplyr)
top_dest %>% ungroup %>% slice(1:20)
我们可以使用
过滤器
library(dplyr)
top_dest %>%
ungroup %>%
filter(row_number() < 21)
库(dplyr)
顶部目标%>%
解组%>%
过滤器(行号()<21)
我们可以使用过滤器
library(dplyr)
top_dest %>%
ungroup %>%
filter(row_number() < 21)
库(dplyr)
顶部目标%>%
解组%>%
过滤器(行号()<21)
slice不维护任何行顺序。因此,我们可以真正比较两者。顺便说一句,我们可以使用top_dest[1:20]开始dplyr格式的代码,因为结果也是一个tibble.Ok。因此,基本上没有办法将“top_dest[1:20,]”替换为管道流程中的一个步骤,我必须打破流程?slice不维护任何行顺序。因此,我们可以真正比较两者。顺便说一句,我们可以使用top_dest[1:20]开始dplyr格式的代码,因为结果也是一个tibble.Ok。所以,基本上没有办法用某种可以成为管道流动中的一个步骤的东西来取代“top_dest[1:20],我必须打破流动?这正是我需要做的!这样,我可以写下一个唯一的命令行。非常感谢!这正是我需要做的!这样,我可以写下一个唯一的命令行。非常感谢!非常感谢。filter(row_number()<21)
与slice(1:20)
完全相同吗?@user12703198是的,它返回前20行谢谢。过滤器(row_number()<21)
与切片(1:20)
完全相同吗?@user12703198是的,它返回前20行