【问题标题】:aggregate not showing correct results聚合未显示正确结果
【发布时间】:2015-04-21 16:25:43
【问题描述】:

我有一个如下所示的数据集data1

       Id    Results
       1232  Az
       1232  Ca
       1223  Hi
       1223  Az
       8477  Ca
       8477  Ca

我使用聚合函数根据Id对这些进行分组,

       aggregate(Results~ Id, data=data1, FUN=head,1)

我期待

        Id      Results
        1232    Az,Ca,Hi
        1223    Hi, Az 
        8477    Ca, Ca

我看到了

        Id      Results
        1232    Az
        1223    Az
        1223    Ca

【问题讨论】:

  • 无法复制。我看到structure(list(Id = c(1223L, 1232L, 8477L), Results = structure(c(3L, 1L, 2L), .Label = c("Az", "Ca", "Hi"), class = "factor")), .Names = c("Id", "Results"), row.names = c(NA, -3L), class = "data.frame")
  • @TyVoss 我回应 Jbaums。它无法用您的代码重现。我只得到一个结果元素
  • @TyVoss 为什么你会期望Hi 在组1232 中?我想你可能会关注这个:aggregate(Results ~ Id, d, paste0, collapse=',').
  • @TyVoss 你能显示数据集的str 吗?或者更好的是jbaums 显示的dput。它可能是一个列表列
  • @jbaums,@akrun 我再次运行了聚合函数,你们都是对的我只是看到单个值,我更新了我的问题

标签: r aggregate-functions


【解决方案1】:

如果您传递给aggregate 的函数是head(x, 1),则每个组只有一个值。

如果您想要一个属于每个组的逗号分隔值字符串,您可以使用:

aggregate(Results ~ Id, d, paste0, collapse=',')

#     Id Results
# 1 1223   Hi,Az
# 2 1232   Az,Ca
# 3 8477   Ca,Ca    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多