标签: aggregate

将分组平均值添加到数据框中的列

我想计算数据框中的组平均值,并在包含这些组平均值的原始数据框中创建一个新列。(我正在进行重复性研究,我想要新列中插入、单元和通道内测量的平均值,以便我可以将其减去并计算残差。)

我的数据:

> head(mytestdata,15)
   Insertion Measurement Unit Channel Value
1          1           1   A5      10  9.41
2          1           1   A5      11  9.51
3          1           1   A5      12 10.59
4          1           1   A5      13  9.45
5          1           2   A5      10  9.42
6          1           2   A5      11  9.03
7          1           2   A5      12 10.62
8          1           2   A5      13  9.39
9          1           3   A5      10  9.38
10         1           3   A5      11  9.87
11         1           3   A5      12 11.34
12         1           3   A5      13 …
Run Code Online (Sandbox Code Playgroud)

aggregate r dataframe

3
推荐指数
1
解决办法
3635
查看次数

使用带有变量名的聚合作为列名

我有以下数据框:

a <- c(1,1,4)
b <- c(1,0,2)
c <- data.frame(a=a,b=b)
str(c)
#  a  b
#1 1  1
#2 1  0
#3 4  2
Run Code Online (Sandbox Code Playgroud)

我想按以下方式聚合数据框 c:

aggregate(b~a,FUN=mean,data=c)
#  a   b
#1 1 0.5
#2 4 2.0
Run Code Online (Sandbox Code Playgroud)

但是,我的主要问题是我将使用变量作为列的名称

所以:

d <- 'a'
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用包含列名称的变量 d 进行聚合,显然会收到错误:

aggregate(b~d,FUN=mean,data=c)
#Error in model.frame.default(formula = b ~ d, data = c) : variable lengths differ (found for 'd')
Run Code Online (Sandbox Code Playgroud)

这可行,但我随后得到了愚蠢的列名称。我想避免重命名列的额外步骤:

aggregate(c[,'b']~c[,d],FUN=mean,data=c)
#  c[, d] c[, "b"]
#1    1      0.5
#2    4      2.0
Run Code Online (Sandbox Code Playgroud)

如何聚合并在第一次尝试时获得正确的列名称?(也许没有办法做到这一点)

aggregate r dataframe

3
推荐指数
1
解决办法
7962
查看次数

多种功能聚合

从以下数据帧 df1 可以看出

 Branch Loan_Amount TAT
      A         100 2.0
      A         120 4.0
      A         300 9.0
      B         150 1.5
      B         200 2.0
Run Code Online (Sandbox Code Playgroud)

我可以使用聚合函数将以下输出作为数据帧 df2 获取

 Branch Number_of_loans Loan_Amount Total_TAT
      A               3         520      15.0
      B               2         350       3.5
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用 nrow 来计算 number_of_loans 并合并,但我正在寻找更好的方法。

aggregate r

3
推荐指数
1
解决办法
5872
查看次数

dplyr:组计数的平均值

我正在尝试使用 dplyr 查找数据帧上变量的平均长度:

x <- data %>% group_by(Date, `% Bucket`) %>% summarise(count = n())

Date          % Bucket count
(date)    (fctr) (int)
1  2015-01-05       <=1  1566
2  2015-01-05    (1-25]   421
3  2015-01-05   (25-50]   461
4  2015-01-05   (50-75]   485
5  2015-01-05  (75-100]   662
6  2015-01-05 (100-150]  1693
7  2015-01-05      >150 12359
8  2015-01-13       <=1  1608
9  2015-01-13    (1-25]   441
10 2015-01-13   (25-50]   425
Run Code Online (Sandbox Code Playgroud)

如何汇总以找出% Bucket一年中每一年的平均值dplyr

in base:
x <- as.data.frame(x)
aggregate(count ~ `% Bucket`, data = x, FUN=mean) …
Run Code Online (Sandbox Code Playgroud)

aggregate r dplyr

3
推荐指数
1
解决办法
6303
查看次数

pandas:将一列列表聚合成一个列表

我有以下数据框my_df

name         numbers
----------------------
A             [4,6]
B             [3,7,1,3]
C             [2,5]
D             [1,2,3]
Run Code Online (Sandbox Code Playgroud)

我想将所有数字合并到一个新列表中,因此输出应该是:

 new_numbers
---------------
[4,6,3,7,1,3,2,5,1,2,3]
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

def combine_list(my_lists):
    new_list = []
    for x in my_lists:
        new_list.append(x)

    return new_list

new_df = my_df.agg({'numbers': combine_list})
Run Code Online (Sandbox Code Playgroud)

new_df看起来仍然和原来的一样:

              numbers
----------------------
0             [4,6]
1             [3,7,1,3]
2             [2,5]
3             [1,2,3]
Run Code Online (Sandbox Code Playgroud)

我做错了什么?我该如何制作new_df

 new_numbers
---------------
[4,6,3,7,1,3,2,5,1,2,3]
Run Code Online (Sandbox Code Playgroud)

谢谢!

aggregate dataframe python-3.x pandas

3
推荐指数
1
解决办法
2639
查看次数

r 中多列的条件均值

我们用这个mtcars来说明一下情况。

我想要做的与下面的多列相同。qsec获得一列(在示例中)相对于具有特定值(4 和 6,在下面的示例中)的另一列的平均值。我稍后会比较结果,所以也许我会将结果存储在向量中

table(mtcars$cyl)
4  6  8
11  7 14

mean(mtcars$qsec[mtcars$cyl == 4], na.rm = T)
mean(mtcars$qsec[mtcars$gear == 4], na.rm = T)
Run Code Online (Sandbox Code Playgroud)

我想检查qsec关于的方法cyl,让我们说gearcarb,对于均值具有相同的“模式”,即观察值的平均值为 4 和观察值的平均值为 6。在真实的数据集中,将有几列具有相同的集合数字(2、0 和 1)。我将比较列的均值(在示例中qsec)与观测值 2 和 0。

我尝试查看诸如tapply, apply,之类的函数sapply。但我坚持将条件平均应用于每一列(一次)。

希望我说清楚了。谢谢你!

aggregate r mean dataframe tapply

3
推荐指数
1
解决办法
4290
查看次数

R中溶解多边形特征的边界

我一直在寻找现有的 R 函数,用于聚合同一图层内共享公共边界的多边形要素(即,生成类似于 ArcGIS 中的“溶解边界”工具的输出)。

我使用 gdal_polygonizeR ( https://johnbaumgartner.wordpress.com/2012/07/26/getting-rasters-into-shape-from-r/ )从光栅文件创建了一个多边形图层。一些多边形形状由单个栅格单元分隔,因此在形状文件中存储为不同的特征。我想将此类多边形特征组合成单个多边形特征,并创建一个新的形状文件(减少多边形元素的总数),最好具有溶解的阈值距离。

有谁知道 R 中现有的方法可以做到这一点?

更新:我认为解决方案可能涉及aggregate,然后是disaggregate。我目前正在探索这一点,特别注意确保带有孔的多边形要素与父多边形保持关联(请参阅:分割单个 SpatialPolygons 对象的多边形部分)。如果/当我找到解决方案时将再次更新。

aggregate r polygon spatial intersect

3
推荐指数
1
解决办法
8788
查看次数

如何在 mongodb 中聚合使用 $match 作为可选参数

我是 mongodb 的新手,在使用聚合函数时陷入困境。我的查询是 -> 我想根据我在仪表板中应用的过滤器来过滤数据库记录。如何使用 $match 运算符添加过滤器值?它应该在过滤器值存在时应用,如果不可用则忽略。

if (req.body.filterSet !== undefined) {
        const filterData = req.body.filterSet[0];
        var violation_id = filterData.violation_id;
        var start_notice = filterData.start_notice;
        var end_notice = filterData.end_notice;
        var rc_number = filterData.rc_number;
        var circle = filterData.circle;
        var start_date = filterData.start_date;
        var end_date = filterData.end_date;
        var status = filterData.status;
        var source = filterData.source;
        var sms_status = filterData.sms_status;
        var notice_status = filterData.notice_status;
      }
 Complaint.aggregate([
        { $match : { is_active : { $eq : 1 } } },
        { $match : { id …
Run Code Online (Sandbox Code Playgroud)

lookup aggregate match mongodb node.js

3
推荐指数
1
解决办法
3116
查看次数

MongoDB - 转换数组字段以设置

我有一个包含可重复值数组的字段的文档。我想使用与该数组的唯一值相对应的额外字段来转换这些文档。我尝试了aggregate + addToSet但没有成功。

数据:

{..., "random_integers" : [1, 1, 2, 2, 3, 3]},
{..., "random_integers" : [2, 3, 4, 4, 5, 6]},
{..., "random_integers" : [9, 9, 8, 8, 7, 7]}
Run Code Online (Sandbox Code Playgroud)

期待:

{
    ...
    "random_integers" : [1, 1, 2, 2, 3, 3],
    "unique_integers" : [1, 2, 3],
},
{
    ...
    "random_integers" : [2, 3, 4, 4, 5, 6],
    "unique_integers" : [2, 3, 4, 5, 6],

},
{
     ...
    "random_integers" : [9, 9, 8, 8, 7, 7],
    "unique_integers" : …
Run Code Online (Sandbox Code Playgroud)

aggregate mongodb

3
推荐指数
1
解决办法
2478
查看次数

如何根据嵌套对象的ObjectId删除它?

我的课程集合有这个嵌套架构,每个课程中有一个会话数组,每个会话中有一个学生数组,每个学生都是一个对象,由 userName 的属性和引用我的用户集合的 ObjectId 值和另一个属性组成名称包含一些数字的状态。

我想从会话的学生数组中删除一个学生对象及其 _id。

我知道可以展开数组来获取单个对象,但我需要一种巧妙的方法,例如使用 objectId 从数据库中删除对象,这样我们就不必指定路径,例如直接删除或修改嵌套子文档。

这是我的课程架构:

 CourseSchema = new mongoose.Schema({
    name:String,
    sessions:[
        {
         date:Date,
         students :[{
             userName:{
                type:mongoose.Schema.Types.ObjectId,
                ref :'users'
             },
             status:Number
         }]   
        }
    ]
})
Run Code Online (Sandbox Code Playgroud)

aggregate mongoose mongodb node.js express

3
推荐指数
1
解决办法
1565
查看次数