【问题标题】:Why does summarize( ) behave differently in different machines?为什么summarize()在不同的机器上表现不同?
【发布时间】:2020-06-30 20:38:23
【问题描述】:
volume_info <- group_by(volume_info, Date)
volume_info <- summarize(volume_info, `Volume on Date` = sum(Volume))

第一行按“日期”列分组,而第二行取另一列“音量”的总和。在我的笔记本电脑和台式机上的一个帐户上,这工作正常。但是,在同一台笔记本电脑上的不同帐户(“工作”帐户)上,这会引发警告:

summarise() regrouping output by 'year' (override with .groups argument)

这随后会导致错误。在那台机器上,如果我添加参数.groups = "drop",代码就可以正常工作。

所以我想我会在任何地方添加.groups = "drop"。但随后:在原始代码工作的机器中,正在发生的事情是添加了一个名为“.group”的新列,并用值“drop”填充!

发生了什么,我如何在所有机器上获得相同的行为 - 特别是,如果我想协作,“正确”的行为是什么?我同事机器上的代码似乎只有在.groups = "drop" 不存在时才有效。

【问题讨论】:

  • 你能检查那些不同机器上的 dplyr 版本吗? .groups 生命周期是实验性的,它在 1.0.0 中工作。正确的方法是使用相同的版本或 dplyr 对其进行测试。

标签: r dplyr


【解决方案1】:

尝试通过运行检查您的 R 和软件包版本:

sessionInfo()

您的机器上可能有不同版本的软件。特别是在您的情况下,它似乎是 dplyr 软件包的较新版本,请在您的不同机器上尝试:

packageVersion("dplyr")
#> [1] ‘1.0.0’

关于重新组合输出的消息仅供您了解在汇总期间数据框会发生什么情况。这不是警告也不是错误。

有关分组的更多信息,另请参阅:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-11
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    相关资源
    最近更新 更多