【问题标题】:r data.table - select all rows expect first (in each group) [duplicate]r data.table - 首先选择所有行(在每个组中)[重复]
【发布时间】:2020-05-25 15:42:41
【问题描述】:

是否有任何最佳选项可以选择除每组中的第一行之外的所有行。我正在使用 head() 来选择每个组中的第一行,但是有一种情况我需要输出除每个组中的第一行之外的数据。

我更喜欢使用 data.table 包的选项。

setDT(mtcars)
mtcars[order(cyl,mpg), head(.SD,2), by=.(cyl)]

【问题讨论】:

标签: r data.table


【解决方案1】:

如果您使用tail() 并设置n = -1,它将返回除第一行之外的所有行(请参阅?tail)。您可以在命令中使用它,如下所示:

mtcars[order(cyl, mpg), tail(.SD, -1), by = .(cyl)]

【讨论】:

    【解决方案2】:

    为什么不只是将.SD-1 子集?

    mtcars[order(cyl, mpg), .SD[-1], by = .(cyl)]
    

    如果您要查找除最后一行之外的所有内容,还有 .N 特殊符号。

    mtcars[order(cyl, mpg), .SD[-.N], by = .(cyl)]
    

    【讨论】:

      猜你喜欢
      • 2022-01-14
      • 2017-05-28
      • 2016-04-17
      • 2015-03-07
      • 2015-03-21
      • 2017-01-02
      • 2016-01-20
      • 2020-01-30
      相关资源
      最近更新 更多