【问题标题】:How to apply summarise_each to all columns except one? [duplicate]如何将 summarise_each 应用于除一列之外的所有列? [复制]
【发布时间】:2016-12-02 03:57:36
【问题描述】:

我正在分析一组包含许多列(近 30 列)的数据。我想基于两列对数据进行分组,并将求和和均值函数应用于除时间戳之外的所有列。 我将如何在除时间戳之外的所有列上使用 summarise_each?

这是我的代码草案,但显然不正确。加上它会生成错误,因为它不能将 Sum 应用于 POSIXt 数据类型(错误:'sum' not defined for "POSIXt" objects)

features <- dataset %>% 
  group_by(X, Y) %>% 
  summarise_each(funs(mean,sum)) %>%
  arrange(TIMESTAMP)

【问题讨论】:

  • 在总结之前使用select() 可能吗?尽管您将不再拥有TIMESTAMP,因为它的行数比您的摘要多。
  • 完美。工作正常。我希望您将其添加为答案,以便我将其选为最佳答案
  • 你可以简单地做summarise_each(funs(mean, sum), -TIMESTAMP)
  • 感谢@StevenBeaupré,这实际上更容易:)

标签: r dplyr


【解决方案1】:

尝试summarise_each(funs(mean,sum), -TIMESTAMP)TIMESTAMP 从摘要中排除。

【讨论】:

  • 为什么这不适用于当前函数summarise_all
  • 试试 -c(TIMESTAMP) @HNSKD
  • 不幸的是,我无法添加其他答案。我认为这个问题是出于一个不好的原因而关闭的;您正在寻找的答案不在参考页面上。无论如何,对于新的 dplyr (>= 0.8.0),您需要使用 summarise_at(vars(-TIMESTAMP), ~mean) 来总结除 TIMESTAMP 变量之外的所有变量。
猜你喜欢
  • 1970-01-01
  • 2013-01-01
  • 2013-11-08
  • 1970-01-01
  • 2013-03-23
  • 2014-08-24
  • 2012-07-05
  • 2018-12-16
  • 2012-10-19
相关资源
最近更新 更多