标签: aggregate

如何从R的聚合函数中以正确的格式获取data.frame?

我在让R aggregate()函数以我想要的格式返回data.frame时遇到麻烦。

基本上我像这样运行聚合:

aggregate(df$res, list(full$depth), summary)
Run Code Online (Sandbox Code Playgroud)

其中res列包含TRUEFALSENA。我想res根据中的组计算每个值的出现次数,这些组depth是六个数字深度值0、5、15、30、60和100。根据聚合函数上的帮助页面,它会强制按值的因素,所以这应该不是问题(据我所知)。

因此,我运行了聚合函数并将其存储在data.frame中。这可以; 它运行没有错误。R控制台中显示的摘要如下所示:

  Group.1  x.Mode x.FALSE x.TRUE x.NA's
1       0 logical       3     83      0
2       5 logical       3     83      0
3      15 logical       8     78      0
4      30 logical       5     79      2
5      60 logical       1     64     21
6     100 logical       1     24     61
Run Code Online (Sandbox Code Playgroud)

同样,这很好,看起来像我想要的。但是包含结果data.frame实际上只有两列,看起来像这样:

    Group.1 x
1   0   logical
2   5   logical
3   15 …
Run Code Online (Sandbox Code Playgroud)

aggregate r dataframe

5
推荐指数
1
解决办法
3011
查看次数

查找具有两列唯一组合的所有行

我有这张桌子messages;

sender_id    recipient_id
1            2
1            3
1            3
2            1
3            1
2            3
Run Code Online (Sandbox Code Playgroud)

我希望选择以下行:

  1. 要么= sender_id或.receiver_idcurrent_user.id
  2. 另一个字段应该是唯一的.

即我想从表中选择唯一的sender_id = 2或者recipient_id = 2我需要这个结果:

sender_id    recipient_id
2            1
2            3
Run Code Online (Sandbox Code Playgroud)

怎么做?
为什么?因为我希望建立一个类似于Facebook的收件箱,其中汇总了已发送和已接收的邮件,此查询是目前为止的瓶颈.

我使用的是rails 3.2和Postgres 9.3.

sql postgresql aggregate ruby-on-rails duplicates

5
推荐指数
1
解决办法
7118
查看次数

C#LINQ - 如何动态构建Group By子句

我正在处理用户可以选择他/她想要在屏幕上看到的列以及要分组或聚合的列的应用程序.因此,在我的LINQ部分中,我实际上应该将包含列名的变量传递给group by和aggregate子句.请记住,DataTable dt每次可能包含不同的数据(例如员工信息,采购订单,绩效统计等).我只能通过dt.Columns[i].ColumnName和运行时获取有关数据的信息dt.Columns[i].DataType.Name.任何人都可以建议如何做到这一点,我需要的是这样的事情:

        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);

        var query = from row in dt.AsEnumerable()
                    group row by new
                    {
                        foreach(DataColumn column in dt.Columns)
                        {
                           row[column.ColumnName];                          
                        }
                    } into grp

                    select new
                    {
                        foreach(DataColumn column in dt.Columns)
                        {
                           if(column.DataType.Name == "Decimal")
                           {
                             Sum(grp[column.ColumnName]);
                           }else{
                             grp[column.ColumnName];
                           }

                        }
                    };
Run Code Online (Sandbox Code Playgroud)

c# linq group-by aggregate dynamic-linq

5
推荐指数
1
解决办法
8363
查看次数

使用linq对相邻值进行分组

我有一个int值的排序列表,我想组相邻的值.下一个值为nextvalue> = prevValue + 1的值是邻居.

例如:列表:

{1,2,3,5,6,8,9,10}
Run Code Online (Sandbox Code Playgroud)

团体将是:

{1,2,3}
{5,6}
{8,9,10}
Run Code Online (Sandbox Code Playgroud)

这可以用linq完成吗?

这可以很容易地在没有linq的情况下完成 - 通过迭代列表,但我想知道linq是否有解决方案.

.net linq group-by aggregate

5
推荐指数
1
解决办法
244
查看次数

聚合一个实体

在域驱动设计中,如果我想使用存储库,我需要有一个聚合 - 据我所知.

所以我有一个用户,有id,登录,电子邮件和密码.用户是具有唯一ID的域实体.

当我想添加一个User to User存储库时,我是否应该首先构建一个只有Aggregate Root的聚合,这是我的用户实体,仅此而已?在这种情况下,它看起来像User的代理,不需要的层.

或许我在这里错过了什么?也许用户不是一个实体,即使它看起来像这样.或者我可以将实体直接放到存储库中?

entity domain-driven-design aggregate ddd-repositories aggregateroot

5
推荐指数
1
解决办法
574
查看次数

根据R中的id组合行

我的数据,

Id|date1|date2   
1|2008-10-01|NA        
1|NA|2008-10-02     
1|NA|2008-10-03     
2|2008-10-02|NA
2|NA|2008-10-03
Run Code Online (Sandbox Code Playgroud)

我想用这种方式输出,

Id|date1|date2|date3    
1|2008-10-01|2008-10-02|2008-10-03        
2|2008-10-02|2008-10-03 
Run Code Online (Sandbox Code Playgroud)

我尝试使用聚合和dcast,但他们将日期转换为数字格式,并且仍然无法避免使用na.

aggregate analysis r

5
推荐指数
1
解决办法
7301
查看次数

聚合打印不正确的列数

我使用聚合函数来获得因子级别的范围.我正在尝试重命名列,但聚合函数的输出没有min和max作为单独的列.

# example data
size_cor <- data.frame(SpCode = rep(c(200, 400, 401), 3),
                       Length = c(45, 23, 56, 89, 52, 85, 56, 45, 78))

# aggregate function
spcode_range <- with(size_cor, aggregate(Length, list(SpCode), FUN = range))
Run Code Online (Sandbox Code Playgroud)

输出:

spcode_range 

  Group.1 x.1 x.2
1     200  45  89
2     400  23  52
3     401  56  85
Run Code Online (Sandbox Code Playgroud)

数据结构:

str(spcode_range)

'data.frame':   3 obs. of  2 variables:
 $ Group.1: num  200 400 401
 $ x      : num [1:3, 1:2] 45 23 56 89 52 85

dim(spcode_range)
[1] 3 …
Run Code Online (Sandbox Code Playgroud)

aggregate r dataframe

5
推荐指数
1
解决办法
2512
查看次数

在dplyr中同时导出分组值的唯一值和汇总值计数的有效方法

我有兴趣找到一种有效的方式来获取包含以下内容的表的摘要:

  • 计算每组的唯一值
  • 所选变量的一组原始描述性统计

例如,在生成描述性统计信息的情况下,我使用以下代码:

data("mtcars")
require(dplyr)
mt_sum <- mtcars %>% 
  group_by(cyl) %>% 
  summarise_each(funs(min,max), hp, wt, disp)
Run Code Online (Sandbox Code Playgroud)

这会产生所需的输出:

> head(mt_sum)

Source: local data frame [3 x 7]

    cyl hp_min wt_min disp_min hp_max wt_max disp_max
  (dbl)  (dbl)  (dbl)    (dbl)  (dbl)  (dbl)    (dbl)
1     4     52  1.513     71.1    113  3.190    146.7
2     6    105  2.620    145.0    175  3.460    258.0
3     8    150  3.170    275.8    335  5.424    472.0
Run Code Online (Sandbox Code Playgroud)

我有兴趣用数字来丰富数据,这个数字可以反映每个组的值计数.关于计数,这可以简单地完成:

mt_sum2 <- mtcars %>% 
  group_by(cyl) %>% 
  summarise(countObs = n())
Run Code Online (Sandbox Code Playgroud)

这将生成所需的数据:

> …
Run Code Online (Sandbox Code Playgroud)

aggregate r group-summaries dataframe dplyr

5
推荐指数
1
解决办法
96
查看次数

选定行在Pandas数据框中的聚合

我有一个pandas排序的数据框(基于时间)是这样的:

from datetime import datetime
df = pd.DataFrame({ 'ActivityDateTime' : [datetime(2016,5,13,6,14),datetime(2016,5,13,6,16),
                                 datetime(2016,5,13,6,20),datetime(2016,5,13,6,27),datetime(2016,5,13,6,31),
                                 datetime(2016,5,13,6,32),
                                datetime(2016,5,13,17,34),datetime(2016,5,13,17,36),
                                 datetime(2016,5,13,17,38),datetime(2016,5,13,17,45),datetime(2016,5,13,17,47),
                                datetime(2016,5,16,13,3),datetime(2016,5,16,13,6),
                                 datetime(2016,5,16,13,10),datetime(2016,5,16,13,14),datetime(2016,5,16,13,16)],
              'Value1' : [0.0,2.0,3.0,4.0,0.0,0.0,0.0,7.0,8.0,4.0,0.0,0.0,3.0,9.0,1.0,0.0],
               'Value2' : [0.0,2.0,3.0,4.0,0.0,0.0,0.0,7.0,8.0,4.0,0.0,0.0,3.0,9.0,1.0,0.0]
        })
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

ActivityDateTime    Value1  Value2
0   2016-05-13 06:14:00 0.0 0.0
1   2016-05-13 06:16:00 2.0 2.0
2   2016-05-13 06:20:00 3.0 3.0
3   2016-05-13 06:27:00 4.0 4.0
4   2016-05-13 06:31:00 0.0 0.0
5   2016-05-13 06:32:00 0.0 0.0
6   2016-05-13 17:34:00 0.0 0.0
7   2016-05-13 17:36:00 7.0 7.0
8   2016-05-13 17:38:00 8.0 8.0
9   2016-05-13 17:45:00 4.0 4.0 …
Run Code Online (Sandbox Code Playgroud)

python aggregate time-series pandas

5
推荐指数
1
解决办法
538
查看次数

Qlik从多个领域获得不同的数量

我已经在网上搜了一个多小时,找不到我需要的东西.

我有两列包含人名; ContactCreated By.两者的格式相同.

基本上我需要计算这两列组合的不同值.例如,名称可以在每列数据中多次,但我只希望名称计数一次.

我尝试使用下面的内容,但它返回的数字高于两列之间的实际不同值.

=Sum(Aggr(Count(Distinct [Created By]),[Contact])) 
Run Code Online (Sandbox Code Playgroud)

也尝试了这个和上面返回的相同数字.

=Count(Distinct [Contact] & [Created By])
Run Code Online (Sandbox Code Playgroud)

提前致谢!

aggregate count qlikview

5
推荐指数
1
解决办法
5780
查看次数