Tôi đang tìm cách sử dụng bất động sản trên màn hình của mình để xem xét một số danh sách đơn giản cạnh nhau. Tôi không cố gắng kết hợp chúng, một la cbind
, nhưng tôi sẽ không quan tâm nếu một cấu trúc trung gian mới được tạo ra. Nhận ra, tất nhiên, một danh sách có thể có nhiều loại đối tượng khác nhau, mặc dù tôi gần như sẽ đảm bảo rằng danh sách của tôi có cùng cấu trúc; cảm thấy tự do để chèn "NA" hoặc "NULL" nếu cần thiết để làm cho mọi thứ hoạt động (hoặc tôi có thể tìm ra cách để giải quyết điều đó).Làm thế nào để hiển thị danh sách cạnh nhau trong R - một "cbind" cho danh sách?
Dưới đây là ba ví dụ liệt kê mà tôi muốn thử để hiển thị cạnh nhau:
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"))
Nếu bạn có một màn hình rộng, có vẻ như một sự lãng phí để xem những mất quá nhiều chỗ đứng và rất ít phòng được sử dụng trên truy cập ngang. Nếu những danh sách này chỉ dài hơn một chút, tôi sẽ không thể nhìn thấy nhiều hơn 2 lần cùng một lúc mà không làm giảm phông chữ nhỏ.
Nếu nó làm cho nó dễ dàng hơn, các e3
mục trong l1
và l2
có thể "FOSS"
, để phù hợp với vectơ đặc trưng của l3$e3
, nhưng mục tiêu thực sự là một vấn đề bố trí trong R console.
Một số giải pháp giao diện cụ thể ngây thơ bao gồm:
- cháy lên nhiều trường hợp R, chia màn hình sử dụng GNU
screen
vàC-A |
- Tìm hiểu ESS, và để cho sự kỳ diệu của Emacs giải quyết tất cả mọi thứ
- Go qua lại với một trình soạn thảo văn bản khác (ví dụ: Notepad ++) và di chuyển khối văn bản theo cách thủ công
Các giải pháp không ngây thơ t mũ tôi đang cố gắng là:
- Viết chúng vào tệp văn bản. Vấn đề ở đây là làm việc ra khoảng cách rộng cố định. Có lẽ
read.fwf
sẽ hữu ích. (Bạn có thể dừng nếu có lỗi nếu mục nhập vượt quá không gian được phân bổ hoặc để cắt bớt nội dung.) - Hãy thử thứ gì đó với gói
reshape
. - Có thể có gì đó liên quan đến
xlsx
, để tạo một nhóm ô, mỗi ô có mục nhập văn bản và sau đó cố gắng hiển thị ma trận ký tự lớn.
Có một số phương pháp khác sẽ hiệu quả hơn không? Một lần nữa, không có gì thực sự cần phải được kết hợp như một đối tượng, chỉ cần kết hợp trong hiển thị trực quan.
Cập nhật 1. Dưới đây là ví dụ sử dụng plyr
. Kết quả được thừa nhận khá thô - tên của danh sách và danh sách các yếu tố đã không được bảo tồn Đó không phải là quá khó khăn để sửa chữa, nhưng tôi nghi ngờ nó có thể làm tốt hơn nhiều so với điều này. Tôi không sao với việc in ra các danh sách như R thường in chúng, nhưng tách cửa sổ theo một cách nào đó. Tôi có một sự nghi ngờ không dễ.
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 Điều đó có vẻ tốt! – Iterator
Câu trả lời của bạn là điều tôi hy vọng đạt được trong câu trả lời của R. James thực sự hấp dẫn hơn tôi mong đợi, nhưng giải pháp R cơ bản của bạn thắng giải "console" (so với an ủi ...). – Iterator