如何将summarise_each应用于除一个列外的所有列?

9
我正在分析一组数据,其中有许多列(大约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,因为它比你的摘要行数多。 - thelatemail
太好了,运行得很好。我希望你能将它作为答案添加,这样我就可以选择它作为最佳答案了。 - Behrad3d
1
你可以简单地使用 summarise_each(funs(mean, sum), -TIMESTAMP) - Steven Beaupré
谢谢@StevenBeaupré,这实际上更容易 :) - Behrad3d
1个回答

19

尝试使用 summarise_each(funs(mean,sum), -TIMESTAMP) 来排除 TIMESTAMP 在汇总中的影响。


4
дёєд»Ђд№€еЅ“е‰Ќзљ„е‡Ѕж•°summarise_allдёЌиѓЅж­Јеёёе·ҐдЅњпјџ - HNSKD
1
尝试 -c(TIMESTAMP) @HNSKD - Union find
很遗憾,我无法添加另一个答案。我认为这个问题被错误地关闭了;你要找的答案不在参考页面上。无论如何,对于新的 dplyr(>= 0.8.0),您需要使用 summarise_at(vars(-TIMESTAMP), ~mean) 对除 TIMESTAMP 变量之外的所有变量进行汇总。 - MS Berends

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接