給出一個列表數據幀:轉換[R列表缺失/ null元素
alist = list(
list(name="Foo",age=22),
list(name="Bar"),
list(name="Baz",age=NULL)
)
什麼是將此轉換成與姓名和年齡列的數據框的最佳途徑,缺失值(我會接受NA或「」按照優先順序)?
使用ldply
的簡單方法會失敗,因爲它會嘗試將每個列表元素轉換爲數據框,但由於長度不匹配而使用NULL barfs。最好的我目前所面對的是:
> ldply(alist,function(s){t(data.frame(unlist(s)))})
name age
1 Foo 22
2 Bar <NA>
3 Baz <NA>
但是那是相當噁心和數值變量變成一個因素......
惱人的那種'check.rows = FALSE'還提供了有關具有不同數量的觀測... –