Si leéis el blog con cierta frecuencia seguro que ya os suena MongoDB, una base de datos NoSQL de tipo documental que almacena BSON (JSON binarios).
R por su lado es un lenguaje para análisis estadístico y generación de gráficos (ver post)
En R existen 2 paquetes que permiten conectar con MongoDB: RMongo y rmongodb.
RMongo funciona a través de llamadas Java al mongo-java-driver y rmongodb a través del driver C:
Veamos como funciona cada uno:
En RMongo este programa
library(RMongo) mg1 <- mongoDbConnect(‘db’) print(dbShowCollections(mg1)) query <- dbGetQuery(mg1, ‘test’, «{‘AGE’: {‘$lt’: 10}, ‘LIQ’: {‘$gte’: 0.1}, ‘IND5A’: {‘$ne’: 1}}») data1 <- query[c(‘AGE’, ‘LIQ’, ‘IND5A’)] summary(data1)genera:
En rmongodb el programa es algo más denso:
library(rmongodb) mg2 <- mongo.create() print(mongo.get.databases(mg2)) print(mongo.get.database.collections(mg2, ‘db’)) buf <- mongo.bson.buffer.create() mongo.bson.buffer.start.object(buf, ‘AGE’) mongo.bson.buffer.append(buf, ‘$lt’, 10) mongo.bson.buffer.finish.object(buf) mongo.bson.buffer.start.object(buf, ‘LIQ’) mongo.bson.buffer.append(buf, ‘$gte’, 0.1) mongo.bson.buffer.finish.object(buf) mongo.bson.buffer.start.object(buf, ‘IND5A’) mongo.bson.buffer.append(buf, ‘$ne’, 1) mongo.bson.buffer.finish.object(buf) query <- mongo.bson.from.buffer(buf) cur <- mongo.find(mg2, ‘db.test’, query = query) age <- liq <- ind5a <- NULL while (mongo.cursor.next(cur)) { value <- mongo.cursor.value(cur) age <- rbind(age, mongo.bson.value(value, ‘AGE’)) liq <- rbind(liq, mongo.bson.value(value, ‘LIQ’)) ind5a <- rbind(ind5a, mongo.bson.value(value, ‘IND5A’)) } mongo.destroy(mg2) data2 <- data.frame(AGE = age, LIQ = liq, IND5A = ind5a) summary(data2)que genera:
Sin dudas voy a empezar por RMongo :).



Replica a Luis Cancelar la respuesta