【问题标题】:Order function in R: argument lengths differR中的顺序函数:参数长度不同
【发布时间】:2014-01-15 08:13:30
【问题描述】:

我在 R 中收到以下错误:

argument lengths differ.

我有一个数据集,我想在两列上排序,首先是 caseID,然后是包含时间戳的列。我使用以下代码:

mydata <- mydata[order(mydata[ ,col1], mydata[ ,col2], decreasing = FALSE),]

Col1 和 col2 是两个保存整数的变量。我查看了类似的问题并尝试了那里提出的解决方案,但没有任何效果;)。

有人可以帮帮我吗?

亲切的问候

【问题讨论】:

  • 请提供dput(head(mydata))的输出
  • 我怀疑问题在于您没有引用列名。

标签: r arguments


【解决方案1】:

R 认为您的 2 列具有不同的长度,有时当您意外访问不存在的列时会发生这种情况,请检查 col1col2 的值以确保它们是适当的数字。另请查看length(mydata[,col1])length(mydata[,col2]) 以查看这两个值是否匹配。还要检查是否缺少 , 或其他标点符号,有时如果您的语法不完全正确,那么您会得到一个长度为 1 的列表,或者一个长度与其他向量不匹配的单元素向量。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,但能够让我的代码正常工作。试试这个代码。

    with(mydata, mydata[order(col1,col2),]). 
    

    结果是递减的,所以不需要添加函数 reduction = False。希望有帮助。

    【讨论】:

      【解决方案3】:

      可能很高兴检查这个类似的帖子,使用 dplyr 包来解决它,它帮助了我:Arrange within a group with dplyr

      这可能会奏效:

      library(dplyr)
      mydata <- mydata %>%
        arrange(
          col1,
          col2,
          desc(col3)
        )
      

      【讨论】:

        猜你喜欢
        • 2021-12-25
        • 1970-01-01
        • 1970-01-01
        • 2015-10-02
        • 1970-01-01
        • 1970-01-01
        • 2016-04-22
        • 2020-08-14
        • 1970-01-01
        相关资源
        最近更新 更多