组上带有WHERE子句的R数据聚合

ui_90jax

例如,我有下面显示的data.table。我想做一个简单的聚合,其中b = sum(b)。对于c,但是我想要c中的记录的值,其中b是最大的。所需的输出如下所示(data.aggr)。这导致了一些问题:

1)有没有办法做这个data.table?

2)在plyr中有更简单的方法吗?

3)在plyr中,输出对象从data.table更改为data.frame。我可以避免这种行为吗?

library(plyr)
library(data.table) 
dt <- data.table(a=c('a', 'a', 'a', 'b', 'b'), b=c(1, 2, 3, 4, 5), 
                 c=c('m', 'n', 'p', 'q', 'r'))
dt
#    a b c
# 1: a 1 m
# 2: a 2 n
# 3: a 3 p
# 4: b 4 q
# 5: b 5 r
dt.split <- split(dt, dt$a)
dt.aggr <- ldply(lapply(dt.split,  
    FUN=function(dt){ dt[, .(b=sum(b), c=dt[b==max(b), c]), 
    by=.(a)] }), .id='a')
dt.aggr
#   a b c
# 1 a 6 p
# 2 b 9 r
class(dt.aggr)
# [1] "data.frame"
大卫·阿伦堡

这是data.table范围内的简单操作

dt[, .(b = sum(b), c = c[which.max(b)]), by = a]
#    a b c
# 1: a 6 p
# 2: b 9 r

一个类似的选择是

dt[order(b), .(b = sum(b), c = c[.N]), by = a]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有where子句的聚合函数

来自分类Dev

在Column上带有where子句的SELECT语句

来自分类Dev

SQL Server上带有IN的WHERE子句中的CASE语法

来自分类Dev

Foreach带有where子句?

来自分类Dev

带有if语句的Where子句

来自分类Dev

带有numpy的Where子句

来自分类Dev

带有多个 OR 的 Where 子句

来自分类Dev

带有聚合框架的嵌套组

来自分类Dev

在带有where子句的android上运行sqlite查询时,我没有任何结果

来自分类Dev

带有ID的android sql where子句

来自分类Dev

带有动态Where子句的Android rawquery

来自分类Dev

带有非空变量的where子句

来自分类Dev

带有“ Where IN”子句的MariaDB性能问题

来自分类Dev

带有动态Where子句的Android rawquery

来自分类Dev

Laravel 5.1中带有AND OR的WHERE子句?

来自分类Dev

带有Q语句的LINQ where子句

来自分类Dev

带有 where 子句的 select 语句

来自分类Dev

自连接失败,带有 where 子句

来自分类Dev

如何在带有Rails的SQL查询的where子句中的值数组上生成LIKE?

来自分类Dev

deleteAll()与deleteAllInBatch()在带有'@Where'子句的休眠实体上产生不同的结果

来自分类Dev

在两个表上都带有where子句的Rails LEFT OUTER JOIN

来自分类Dev

多个表上的带有 WHERE 子句的 SQL JOIN 速度变慢

来自分类Dev

无法使用带有字符串字段的Where子句搜索数据库

来自分类Dev

错误执行数据库查询(带有WHERE子句的问题?)

来自分类Dev

Laravel:使用带有where子句的数据透视表获取单个模型

来自分类Dev

where子句中具有聚合的复杂查询

来自分类Dev

组 where 子句使用

来自分类Dev

带有R组的板凳

来自分类Dev

在 R 中读取 SQL 查询时使用带有日期的 Where 子句

Related 相关文章

热门标签

归档