Как рассчитать среднее значение определенного столбца с помощью RMongo?

Этот код показывает, как я делаю это в 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.


person Dawid Stan    schedule 03.12.2016    source источник


Ответы (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
person SymbolixAU    schedule 06.12.2016