我在R中的以下數據:如何將此列表轉換爲R中具有相同名稱的數據框?
list0 <- list(ff = 45,gg = 23)
list1 <- list(a = 2, b=list0)
LIST <- list(mylist = list1)
我想這個列表轉換爲數據幀,並得到一個輸出數據幀如下,它具有以下的列標題命名約定:
a b.ff b.gg
1 2 45 23
任何幫助表示讚賞。
我在R中的以下數據:如何將此列表轉換爲R中具有相同名稱的數據框?
list0 <- list(ff = 45,gg = 23)
list1 <- list(a = 2, b=list0)
LIST <- list(mylist = list1)
我想這個列表轉換爲數據幀,並得到一個輸出數據幀如下,它具有以下的列標題命名約定:
a b.ff b.gg
1 2 45 23
任何幫助表示讚賞。
vec <- unlist(LIST)
names(vec) <- sub("mylist.", "", names(vec))
dt <- data.frame(as.list(vec))
dt
a b.ff b.gg
1 2 45 23
的LIST
一步是多餘的:
> data.frame(list1)
a b.ff b.gg
1 2 45 23
您還可以使用do.call
與data.frame
構建data.frame,包括unname
下降的第一個列表級別的名稱。
mydf <-do.call(data.frame, unname(LIST))
mydf
a b.ff b.gg
1 2 45 23
確保對象具有所需的結構。
str(mydf)
'data.frame': 1 obs. of 3 variables:
$ a : num 2
$ b.ff: num 45
$ b.gg: num 23