【问题标题】:Arrange function: Conflict between lubridate and dplyr R排列功能:lubridate和dplyr R之间的冲突
【发布时间】:2019-01-21 19:12:40
【问题描述】:

我想用arrange 函数从dplyr 重新排列一个df。问题是,当我有另一列(比方说 v2)与我想安排 df 的列不同时,这两个包似乎存在冲突:

   library(dplyr)
library(lubridate)

start_dates <- as.Date(1:10, origin = "2018-01-01")
my_df <- data.frame(x = 10:1, y = interval(start_dates, start_dates + 1), 
                    z=c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J"))

my_df %>% arrange(z)

arrange_impl(.data, dots) 中的错误: 当前不支持来自 lubridate 的列 y 类 Period 和 Interval。

如何订购我的数据框?提前谢谢你。

【问题讨论】:

  • 如果不知道您的数据是什么样的,就很难提供帮助。使用dput() 选择您的数据样本并将其包含在您的问题中。
  • 我已经编辑了帖子,所以你有一个例子:)

标签: r dplyr lubridate


【解决方案1】:

我不会将其称为“冲突”本身,只是一个包不支持另一个包的功能。

如果dplyrarrange() 不支持Interval 类,只需像往常一样使用order()

library(dplyr)
library(lubridate)

start_dates <- as.Date(1:10, origin = "2018-01-01")
my_df <- data.frame(x = 10:1, y = interval(start_dates, start_dates + 1))

my_df %>% arrange(y)

arrange_impl(.data, dots) 中的错误:
目前不支持来自 lubridate 的列 `y` 类 Period 和 Interval。

my_df[order(my_df$y), ]

#     x                              y
# 1  10 2018-01-02 UTC--2018-01-03 UTC
# 2   9 2018-01-03 UTC--2018-01-04 UTC
# 3   8 2018-01-04 UTC--2018-01-05 UTC
# 4   7 2018-01-05 UTC--2018-01-06 UTC
# 5   6 2018-01-06 UTC--2018-01-07 UTC
# 6   5 2018-01-07 UTC--2018-01-08 UTC
# 7   4 2018-01-08 UTC--2018-01-09 UTC
# 8   3 2018-01-09 UTC--2018-01-10 UTC
# 9   2 2018-01-10 UTC--2018-01-11 UTC
# 10  1 2018-01-11 UTC--2018-01-12 UTC

注意

为了将来的参考,我会认真对待OTStats 的警告——通常没有示例数据,其他人很难帮助你。我会查看How to Make a Great R Reproducible Example

【讨论】:

  • 为了澄清,我已经用你的例子编辑了原始帖子。我还有一个问题:'order()' 是否接受多个变量?
  • @ArmandoGonzálezDíaz 当然,您可以执行foo[order(foo$bar, foo$baz), ] 之类的操作。查看help("order") 了解更多详情——它的第一个参数是...,它接受任意变量序列以进行排序
  • 我已经检查过了,但它的工作方式与排列方式不同。不要重命名列
  • order 以正确的顺序显示 df,但是当我按顺序进行操作时,即my_df$rank&lt;-dplyr::ntile(my_df$z,30),当按排列排序时,操作的结果不同。此外,不会替换 colnames 以与新订单连续
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多