【问题标题】:How to select the last five rows in a table by using function slice()?如何使用函数 slice() 选择表中的最后五行?
【发布时间】:2019-09-19 19:12:47
【问题描述】:

我想使用函数 slice() 选择名为 dat 的数据集的最后五行。我试过 slice(dat, 5L) 但它只返回一行。我还能尝试什么?

【问题讨论】:

  • 只需使用基本函数tail,这正是它的设计目的

标签: r dplyr


【解决方案1】:

slice 需要一个索引向量来返回那么多行。根据?slice

... - 整数行值。提供要保留的正值或要删除的负值。提供的值必须全部为正或全部为负。超出输入行数的索引会被忽略。

。在这里,我们可以通过row_number()tail 来获取最后5 个row_numbers

library(dplyr) 
df1 %>%
    slice(tail(row_number(), 5))

【讨论】:

    【解决方案2】:

    FIY,slice 默默删除行名:

    mtcars %>% slice((n()-4):n())
    

    如果你想避免这种情况,只需使用tail

    tail(mtcars, 5)
    

    【讨论】:

    • 删除行名称通常适用于 dplyr 函数,而不仅仅是这个
    【解决方案3】:

    这应该可以解决问题

    library(dplyr)
    mtcars %>% slice((n()-4):n())
    

    【讨论】:

    • 返回最后 6 行,而不是 5。
    猜你喜欢
    • 1970-01-01
    • 2016-09-15
    • 2014-03-26
    • 2013-05-09
    • 1970-01-01
    • 2013-11-21
    • 2012-12-26
    • 2014-11-27
    • 1970-01-01
    相关资源
    最近更新 更多