Например, если у меня был список с именем «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)
Есть ли способ сортировки списка и подсписков в алфавитном порядке по их именам? (пожалуйста, запустите следующий код, чтобы увидеть пример желаемого вывода в списке с именем «mylist»)
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")
В качестве второго вопроса, возможно ли заполнить списки и подсписки, чтобы они имели одинаковую структуру? Это выглядело бы так (пустые регистры, заполненные ".", Пожалуйста, запустите следующий код, чтобы увидеть пример желаемого вывода в списке с именем "mylist"):
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")
Спасибо за вашу помощь!