【问题标题】:Ordering by multiple columns which include numerical data and timestamp按包含数字数据和时间戳的多列排序
【发布时间】:2021-05-12 03:51:19
【问题描述】:

我正在尝试对包含 ID 号和时间戳的非常大的数据集进行排序。有多行具有相同的 ID 号,因此我需要相应的时间戳按日期时间顺序排列。我已经尝试了基本 order() 和 dplyrarrange() 函数。 基本 order() 函数代码示例:

> df[with(df, order("deviceNr", "timestamp"))]

这段代码似乎删除了数据集的所有部分并产生了两列升序的数字

dplyrarrange()函数代码示例:

 > arrange(df, "deviceNr", "timestamp")

此代码仅按 deviceNr(ID)排列,不按时间戳排列

【问题讨论】:

  • 在基础中,您缺少逗号以表明您正在对行进行排序:df[with(df, order("deviceNr", "timestamp")), ][] 中添加,
  • @GregorThomas 引用在base R 中仍然不正确
  • 你能提供一个可重现的例子吗? stackoverflow.com/questions/5963269/…

标签: r


【解决方案1】:

我们没有引用arrange中的列名

library(dplyr)
arrange(df, deviceNr, timestamp)

或者使用across,它可以同时引用和不引用

arrange(df, across(c('deviceNr', 'timestamp')))

【讨论】:

    【解决方案2】:

    如果你还想使用order,我想你可以试试下面的代码

    df[with(df, order(deviceNr, timestamp)),]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      相关资源
      最近更新 更多