2011-12-27 158 views
3

我有一些json數據[{a:10, b:123,c:4.5},{a:2,b:5,c:33}]等等,我通過json_data <- fromJSON(paste(json_file, collapse=""))(json_file是輸入url)讀入R中。到目前爲止很好。 現在我想從這個輸入中創建矢量,fromJSON已經轉換成矢量列表,其中矢量具有分量a,b,c。從矢量列表中的元素中提取矢量

有沒有比循環輸入列表更好的方法,並通過連接新目標向量上的各個向量組件手動執行此操作?

回答

5

如果你有一個這樣的名單:

l <- list(c(a=10, b=123, c=4.5),c(a=2,b=5,c=33)) 

你可能只是做類似如下:

df <- data.frame(do.call(rbind, l)) 
# a b c 
# 1 10 123 4.5 
# 2 2 5 33.0 
as.list(df) 
# $a 
# [1] 10 2 
# $b 
# [1] 123 5 
# $c 
# [1] 4.5 33.0 

(該do.call(rbind, X)結構是得心應手,讓您rbind的共同元素一個任意長度的列表,然後你可以切片並按照你認爲合適的方式對結果矩陣進行切塊---我只是將它轉換爲data.frame,然後再轉換爲list以顯示幾種可能性。)

+0

完美,像魅力一樣工作 –

+0

非常高興聽到它。當一個簡單的解決方案工作得很好時,這很好。 –