所以我正在嘗試清理 R 中的一些資料,我對 R 不是很熟悉。我想做的是從 JSON 中獲取某些資料并將其存盤到變數中 JSON 非常大而且很亂,我嘗試使用 JSON Lite 并使用 $ Variable 選擇器,但找不到獲取我需要的特定資料的方法,關于 R 中的 JSON 操作的資訊和資源很少
JSON 截圖
JSON 檔案:
{
"error": false,
"msg": "all countries and population 1961 - 2018",
"data": [
{
"country": "Arab World",
"code": "ARB",
"populationCounts": [
{
"year": 1960,
"value": 92197753
},
{
"year": 1961,
"value": 94724510
},
{
"year": 1962,
"value": 97334442
}
]
}
]
}
所以假設我想將 1962 年的值收集到一個變數中,我這樣做的最佳方法是什么
任何建議都會有很大幫助
uj5u.com熱心網友回復:
你在正確的線路上jsonlite。您在 R 中獲得的資料結構當然取決于 JSON 結構本身,因此您需要花一些時間探索 R 中的物件以了解如何操作它。
假設您有一個類似于示例資料的檔案,以mydata.json當前路徑命名,您可以這樣讀取它:
library(jsonlite)
library(tidyr) # comes in later
j <- fromJSON("mydata.json")
里面有什么j?
names(j)
[1] "error" "msg" "data"
怎么樣data?
str(j$data)
'data.frame': 1 obs. of 3 variables:
$ country : chr "Arab World"
$ code : chr "ARB"
$ populationCounts:List of 1
..$ :'data.frame': 3 obs. of 2 variables:
.. ..$ year : int 1960 1961 1962
.. ..$ value: int 92197753 94724510 97334442
j$data具有 3 列的資料框也是如此。最后一個,帶有年份和值是一個串列列。所以我們可以使用tidyr::unnest():
j$data %>%
unnest(cols = c(populationCounts))
結果:
# A tibble: 3 × 4
country code year value
<chr> <chr> <int> <int>
1 Arab World ARB 1960 92197753
2 Arab World ARB 1961 94724510
3 Arab World ARB 1962 97334442
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/366634.html
