【问题标题】:How to calculate the average of particular column using RMongo?如何使用 RMongo 计算特定列的平均值?
【发布时间】:2016-12-03 00:16:01
【问题描述】:

这段代码展示了我在 Pymongo 中是如何做到的,但是如果我想在 RMongo 中做到这一点呢?

from pymongo import MongoClient

connection = MongoClient()
db = connection.mydb
collection = db.transactions

pipe = [{'$group': {'_id': 'TRANS_AMNT_AVG', 'average': {'$avg':'$TRANS_AMOUNT'}}}]
result = collection.aggregate(pipeline=pipe)

print(list(result))

connection.close()

我的数据集名为transactions,列名为TRANS_AMOUNT。我想计算平均TRANS_AMOUNT

【问题讨论】:

    标签: r mongodb pymongo rmongo


    【解决方案1】:

    我更喜欢使用mongolite 来让 R 用于 mongodb 工作,实际上代码与您提供的代码非常相似

    library(mongolite)
    
    mongo <- mongo(collection = "transaction", db = "test")
    
    ## dummy data
    set.seed(2016)
    df <- data.frame(TRANS_AMOUNT = rnorm(10,0,1))
    
    ## insert into mongo
    mongo$insert(df)
    
    
    ## run the aggregation query
    ## note I've swapped single quotes for doubles, and vice versa
    pipe = '[{"$group": {"_id": "TRANS_AMNT_AVG", "average": {"$avg":"$TRANS_AMOUNT"}}}]'
    
    mongo$aggregate(pipeline = pipe)
    # Imported 1 records. Simplifying into dataframe...
    #              _id    average
    # 1 TRANS_AMNT_AVG -0.3645931
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 2019-11-26
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多