2016-11-06 16 views
1

上添字のエラー数が誤って修正:fromJSON + ldply:私はこのような構造を持っているJSON持って行列

{\"A\": [[\"x\", 0.2], [\"y\", 0.3], [\"z\", 0.3]], \"B\": [[\"x\", 0.2], [\"y\", 0.3]]} 

を私はこれを行うにしようとしています:

library(jsonlite) 
library(plyr) 
my_data <- fromJSON(my_json_file, flatten = TRUE) 
my_data <- ldply(my_data, rbind) 

をしかし、私はこのエラーを取得します:

Error in output[rng, lcols[[i]]] <- matrices[[i]] : 
    incorrect number of subscripts on matrix 

私はdo.call(rbind, my_json_file)を行うとするので、一部の情報が欠落していることを実行してしようとしたldply

V1 | V2 | V3 
A | x | 0.2 
A | y | 0.3 
A | z | 0.3 
B | x | 0.2 
B | y | 0.3 

do.call戻り

V2 | V3 
x | 0.2 
y | 0.3 
z | 0.3 
x | 0.2 
y | 0.3 

ldplyを強制するか、do.callと同じ結果を得るために方法はあり

を返す必要がありますか?

+1

です – SymbolixAU

+0

ありがとうございます! + my_data $ id < - colnames(my_data) 'は – pachamaltese

答えて

1

ldplyが動作しない場合@SymbolixAUは解決策を開始したとして、 `do.call(rbind、lapply(fromJSON(my_json)、data.frame))のようなもの`あなたが始めるためにおそらく

my_data <- do.call(rbind, lapply(fromJSON(my_json), data.frame)) 
my_data$id <- colnames(my_data) 
+0

うまく動作しますが、大きなデータセットでは' do.call + rbind + lapply'が効率的でないかもしれません。 – SymbolixAU

+0

はい、私は 'mclapply'を使用しなければなりませんでしたが、少なくとも動作します...なぜ' ldply'が – pachamaltese

関連する問題