Szukam używać ekranu nieruchomości, aby spojrzeć na kilka prostych list obok siebie. Nie próbuję ich łączyć, a la cbind
, ale nie miałbym nic przeciwko stworzeniu nowej struktury pośredniej. Uświadom sobie oczywiście, że lista może mieć wiele różnych typów obiektów, chociaż prawie zagwarantuję, że moje listy mają te same struktury; nie przejmuj się wstawiać "NA" lub "NULL", jeśli to konieczne, aby wszystko działało (lub mogę wymyślić, jak to zaszkodzić).Jak wyświetlać listy obok siebie w R - "cbind" dla list?
Oto trzy przykład wymienia, że chciałbym spróbować, aby wyświetlić obok siebie:
l1 <- list(e1 = "R", e2 = list("statistics", "visualization"), e3 = 0)
l2 <- list(e1 = "Perl", e2 = list("text processing", "scripting"), e3 = 0)
l3 <- list(e1 = "Matlab", e2 = list("numerical computing", "simulation"), e3 = c("academic - unknown", "professional - unknown"))
Jeśli masz szeroki monitora, to wygląda jak odpady, aby zobaczyć te zajmują tyle pionowy pokój i tak mało miejsca na dostęp poziomy. Gdyby te listy były tylko trochę dłuższe, nie byłbym w stanie zobaczyć więcej niż 2 naraz, bez zmniejszania się do małej czcionki.
Jeśli to sprawia, że łatwiej się e3
wpisy l1
i l2
może być "FOSS"
, aby dopasować wektorów charakter l3$e3
, ale prawdziwym celem jest problemem układ w konsoli R.
Niektóre naiwne, rozwiązania interfejsowe specyficzne obejmują:
- odpalić wiele wystąpień R, podzielony ekran za pomocą GNU
screen
iC-A |
- Learn ESB i niech cud Emacs rozwiązać wszystko
- Go tam iz powrotem z innym edytorem tekstów (np. Notepad ++) i ręcznie migrować bloki tekstu
Rozwiązania inne niż naiwne Czapka próbuję:
- Napisz je do pliku tekstowego. Problem polega na opracowaniu odstępów o stałej szerokości. Może pomoże
read.fwf
. (W porządku jest zatrzymanie się z błędem, jeśli wpis przekroczyłby przydzieloną przestrzeń lub obcięłoby coś.) - Spróbuj czegoś z pakietem
reshape
. - Prawdopodobnie coś z udziałem
xlsx
, aby utworzyć grupę komórek, każdy z wpisami tekstowymi, a następnie spróbować wyświetlić dużą matrycę znaków.
Czy istnieją inne metody, które byłyby bardziej wydajne? Ponownie, nic tak naprawdę nie musi być łączone jako obiekt, po prostu połączone w wizualny wyświetlacz.
Aktualizacja 1. Oto przykład użycia numeru plyr
. Wyniki są wprawdzie dość surowe - nazwy list i elementów list nie zostały zachowane To nie jest trudne do naprawienia, ale podejrzewam, że można zrobić o wiele lepiej. Nie mam nic przeciwko drukowaniu list, ponieważ R zwykle je drukuje, ale w pewien sposób oddziela okno. Mam podejrzenie, które nie jest łatwe.
combineLists <- function(manyLists){
library(plyr)
newLists <- list()
for(ixList in 1:length(manyLists)){
tmpList <- lapply(manyLists[[ixList]], paste, sep = "", collapse = ", ")
tmpVec <- as.character(tmpList)
newLists[[ixList]] <- tmpVec
}
newDF <- t(ldply(newLists))
return(newDF)
}
combineLists(list(l1, l2, l3))
+1 To wygląda dobrze! – Iterator
Twoja odpowiedź jest tym, co miałem nadzieję uzyskać w bazie R. Odpowiedź Jamesa jest w rzeczywistości bardziej atrakcyjna, niż się spodziewałem, ale twoje podstawowe rozwiązanie R wygrywa nagrodę "konsola" (w przeciwieństwie do pocieszenia ...). – Iterator