2016-07-27 21 views
0

Ich habe eine Liste von Listen list_of_lists.Liste der Unterlisten mit unterschiedlichen Längen und Datentypen R

Jeder SUB_LIST kann eine unterschiedliche Länge theoretisch haben, wie:

list_of_lists[[1]] 
$id = 1 
$variable1 = "8" 
$variable2 = 8 12.2 

und ...

list_of_lists[[2]] 
$id = 2 
$variable1 = "4" 
$variable2 = 2 2.2 12.1 200.1 

Ich möchte die list_of_lists auf eine lange Datenrahmen konvertieren. Haben bei this SO post sah:

b = as.data.frame(matrix(unlist(list_of_lists), nrow=length(unlist(list_of_lists[1])))) 

und diese haben versucht:

long_df = ldply(list_of_lists, as.data.frame) 

Weder funktioniert, wie ich es erwartet.

Ich möchte wie eine lange df haben:

id variable1 variable2 
1  "8"   8 
1  "8"   12.2 
2  "4"   2 
2  "4"   2.2 
2  "4"   12.1 
2  "4"   200.1 

Antwort

0

Konvertieren jeder sublist zu einem Datenrahmen einzeln und dann rbind sie vorausgesetzt, alle Teil-Listen haben gleiche Felder:

do.call(rbind, lapply(list_of_lists, data.frame)) 

# id var1 var2 
# 1 1 8 8.0 
# 2 1 8 12.2 
# 3 2 4 2.0 
# 4 2 4 2.2 
# 5 2 4 12.1 
# 6 2 4 200.1 
Verwandte Themen