2016-05-10 20 views
0

私は都市名とそれに対応する標高を抽出する長いjsonファイルを持っています。結果は、列Aが都市名を保持し、列Bが標高を保持するリストでなければなりません。lapplyでjsonからデータを抽出

ここでRのためのいくつかのデータ:

l <- fromJSON('[{"_id": "CtNjHGG8asEvFyqsM","cronjobname": "Elev","cronjobid": "mmsibiZL4p42fL8jh", 
"cronjobtyp": "importTestData","datasource": "importTestData","data": [{ 
"Station": "New York","Elev": 300},{ "Station": "London","Elev": 35}], 
"createdAt": "2016-04-30T22:10:11.342Z","createdBy": null,"modifiedAt": "2016-04-30T22:10:11.342Z","modifiedBy": null}]') 

そして、それは私が思い付いたものです:

m <- lapply(
    l[[1]]$data, 
    function(x) c(x$Station['Station'], x$Elev['Elev']) 
) 
m <- do.call(rbind, m) 

は、しかし、私は、これは完全なものではなく、駅へのアクセスにl[[1]]$data[[1]]$Stationでなければならないことを知っています残念ながら[[x]]$Stationを単に使用することはできません。何が欠けているのですか、複数のxにアクセスするためにこれをループに入れる必要がありますか?

答えて

2

それはあなたが望むものですか?

m<-lapply(
     l[[1]]$data, 
     function(x) c(x$Station, x$Elev) 
) 
    m <- do.call(rbind, m) 
    > m 
    [,1]  [,2] 
    [1,] "New York" "300" 
    [2,] "London" "35" 

それとも、これを使用することができます:

m <- do.call(rbind, l[[1]]$data) 
    > m 
    Station Elev 
    [1,] "New York" 300 
    [2,] "London" 35 

l[[1]]$data[[1]]$Station['Station']と同等の文x$Station['Station']をので、それは何もありません。

+0

待機...なぜこれは機能しますか? – GeoEki

関連する問題