2016-12-03 34 views
1

此代碼顯示了我如何在Pymongo中執行此操作,但如果我想在RMongo中執行此操作,該怎麼辦?如何使用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

回答

0

我更喜歡使用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