例如,如果我有一个名为" mylist"的列表(请运行以下代码以查看初始结构的示例):
list1 <- list(b = 2 , c = 3 , a=7)
list2 <- list(f="g" , d = "a", c = "b" , e="f")
list3 <- list(i=10 ,o="b", j=7 , m="a")
sublist1 <- list(list1, list2)
mylist <- list(sublist1, list3)
有没有办法根据名称按字母顺序对列表和子列表进行排序? (请运行以下代码,以查看名为&#34; mylist&#34;的列表中所需输出的示例。)
list1 <- list(a = 7 , b = 2 , c=3)
list2 <- list(c = "b", d = "a" , e="f", f="g")
list3 <- list(i=10 , j=7 , m="a",o="b")
sublist1 <- list(list1, list2)
mylist <- list(sublist1, list3)
我最终希望将其转换为如下数据框:
mylist<-data.frame(t(c("7", "2", "3", "b", "a", "f", "g", "10", "7" ,"a", "b")))
names(mylist)<-c("a","b","c1","c2","d","e","f","i","j","m","o")
作为第二个问题,是否可以完成列表和子列表以使它们具有相同的结构?它看起来像这样(空案例填充&#34;。&#34;,请运行以下代码,以查看名为&#34; mylist&#34;的列表中所需输出的示例:
list1 <- list(a = 7, b = 2 , c=3 , d="." , e=".", f="." )
list2 <- list(a=".", b = "." , c = "b" , d = "a", e="f", f="g" )
list3 <- list(i=".",j="." , m="." , o=".")
sublist1<-list(list1,list2)
sublist1<-list(sublist1,list3)
list4 <- list(a=".", b = "." , c= "." , d="." , e=".", f="." )
list5 <- list(a=".", b = "." , c = "." , d="." , e=".", f="." )
list6 <- list(i=10 , j=7 , m="a" , o="b")
sublist2<-list(list4,list5)
sublist2<-list(sublist2,list6)
mylist <- list(sublist1, sublist2)
我最终希望将其转换为如下数据框:
firstrow<-(c("7", "2", "3", ".", ".", ".", ".", ".", "b" ,"a", "f", "g", ". ", ".", ".", "."))
secondrow<-(c(".", ".", ".", ".", ".", ".", ".", ".", "." ,".", ".", ".", "10", "7", "a", "b"))
mylist<-t(data.frame(firstrow, secondrow))
colnames(mylist)<-c("a1","b1","c1","d1","e1","f1","a2","b2","c2","d2","e2","f2","i","j","m","o")
rownames(mylist)<-c("1","2")
感谢您的帮助!
答案 0 :(得分:0)
您可以使用基本R代码按名称对列表进行排序,并将其应用于每个子列表。您可能首先将该列表排除在数据框之外。
list1 <- list(b = 2 , c = 3 , a=7)
list1[order(names(list1))]
#> $a
#> [1] 7
#>
#> $b
#> [1] 2
#>
#> $c
#> [1] 3