2017-10-17 104 views
1

我想從Mongo DB獲得一個來自R的數據庫,因此我可以對其進行分析。這兩者之間的橋樑是一個R包:Rmongo。 由於我有一些政策規則,我無法向您顯示數據集和我的輸出,所以我會盡可能地盡力解釋。使用Rmongo將數據庫從MongoDB轉換爲R數據框

我的兩個第一命令,安裝包後,有這些的:

mg1 <- mongoDbConnect("test", "localhost", 27018)

dbShowCollections(mg1)

其中一期工程,因爲它顯示了收集,或不同的變量。 然後,我可以使用由Rmongo包取得的命令,這意味着:

query = dbGetQuery(mg1, 'address_history','{}')

這通常返回與每一列上的所有變量的數據幀。但是,因爲它是一個嵌套文件,所以我只能得到前三個變量(大約五十個),因爲它們位於嵌套的頂部。其餘的,我用json代碼(大約有50個變量)獲取數據框的一列,我似乎無法在數據框中轉向。如果有人熟悉這一點,請幫助我。

我已經在Stack Overflow上看到了一種手動的方法,這要歸功於gsub,並且在代碼的一般模式中,但是這個代碼是不相似的,而且手動執行它不會使它工作。

此外,還存在經由Rmongo包另一個命令:

query2 = dbGetQueryForKeys(mg1, 'address_history', '{}', '{address:1}')

在哪裏可以返回我想要的變量。不幸的是,因爲這是一個嵌套文件,所以它也找不到嵌套頂部的變量。

是否有另一個命令或其他包可以使用?我願意接受任何其他機會將這個數據集(非常大)轉換爲R數據框,這樣我就可以做出任何推論。

非常感謝!

回答

0

我剛剛試着爲R設置了Rmongo和mongolite。我在starter data locally的分鐘內獲得了mongolite工作。我甚至無法獲得我想用Rmongo插入的數據。

我想如果你嘗試安裝mongolite,你會發現他們的文檔和軟件包更簡單。 https://github.com/jeroen/mongolite

+1

嗨,山姆!在使用mongolite命令之後,我有一個數據框。但我選擇了14個變量,所以我應該有15個列。不幸的是,對象的描述是一個包含兩個變量的數據框:所以它不會分隔最後的14列:只有id被區分。我想知道是否有辦法解決這個問題? – Caroline

+0

你能以mongo的json格式發佈你的數據樣本嗎? –