【问题标题】:(R) aggregate error: invalid 'type' (list) of argument(R) 聚合错误:参数的“类型”(列表)无效
【发布时间】:2015-07-18 14:05:30
【问题描述】:

我正在尝试使用第三列对两个变量的 TRUE 值求和,但出现错误。这是一个代码示例:

framea<-data.frame(v1=c(TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, NA, TRUE, TRUE, TRUE, FALSE),
                   v2=c(FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, NA, TRUE, TRUE, TRUE, FALSE, TRUE, FALSE),
                   v3=c("Blue", "Red","Blue", "Red","Blue", "Red","Blue", "Red","Blue", "Red","Blue", "Red","Blue"),
                  v4=c(1:4, 1:4, 1:5))
framea
attach(framea)
aggdata<-aggregate(formula=cbind(v1, v2)~v4, data=framea, by=list(v3), FUN=sum, na.rm = TRUE, na.action = NULL)
detach(framea)
aggdata

在聚合()步骤之后,我收到以下错误:

Error in FUN(X[[i]], ...) : invalid 'type' (list) of argument

理想情况下,我希望 aggdata 的输出如下所示:

          v1       v2
1 Blue     1        0
2 Blue     1        1
3 Blue     0        2
4 Blue     0        0
1 Red      2        2
2 Red      1        1 
3 Red      1        1 

我怎样才能做到这一点?

【问题讨论】:

  • 您使用的是公式法。但是,它没有 by 参数
  • 哦,我明白了。我会对此进行更多研究。谢谢

标签: r aggregate


【解决方案1】:

感谢上面 akrun 的帖子,我想通了。我不应该一直使用公式 = 功能。答案如下:

framea<-data.frame(v1=c(TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, NA, TRUE, TRUE, TRUE, FALSE),
                   v2=c(FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, NA, TRUE, TRUE, TRUE, FALSE, TRUE, FALSE))
                   v3<-c("Blue", "Red","Blue", "Red","Blue", "Red","Blue", "Red","Blue", "Red","Blue", "Red","Blue")
                  v4<-c(1:3, 1:3, 1:3, 1:4)
framea
attach(framea)
aggdata<-aggregate(x=framea, by=list(v3, v4),FUN=sum, na.rm = TRUE, na.action = NULL)
detach(framea)
aggdata

(如果我应该删除它,请告诉我。谢谢。)

【讨论】:

  • 留作参考。而不是附加和分离,尝试with(framea, aggregate(framea, by=list(v3,v4),..
  • 或者使用公式方法aggregate(cbind(v1,v2)~v3+v4, framea, FUN= sum, na.rm=TRUE, na.action=NULL)顺便说一句,您显示的预期输出与您从中获得的不同。我对你显示的输出感到困惑
  • 我实际得到的输出排序不同,标签也不同,但基本数字(总和)是相同的。那有意义吗?很抱歉造成混乱
  • 我猜你是对的。是的,订单让我很困惑。您不必删除线程。将来可能对某人有用
猜你喜欢
  • 2018-12-01
  • 2013-08-04
  • 2016-05-09
  • 2021-05-04
  • 2017-10-05
  • 2015-11-01
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
相关资源
最近更新 更多