Giả sử tôi có danh sách vectơ lồng nhau.làm phẳng danh sách lồng nhau bằng các vectơ trung bình
lst1 <- list(`A`=c(a=1,b=1), `B`=c(a=1), `C`=c(b=1), `D`=c(a=1,b=1,c=1))
lst2 <- list(`A`=c(b=1), `B`=c(a=1,b=1), `C`=c(a=1,c=1), `D`=c(a=1,c=1))
lstX <- list(lst1, lst2)
Như đã thấy, mỗi vector A,B,C,D
xảy ra hai lần với a,b,c
có ở các tần số khác nhau.
Cách hiệu quả nhất để làm phẳng danh sách sao cho số a,b,c
được tổng hợp hoặc tính trung bình trên A,B,C,D
trên các danh sách lồng nhau, như bên dưới. Danh sách thực có hàng trăm nghìn danh sách lồng nhau.
#summed
a b c
A 1 2 NA
B 2 1 NA
C 1 1 1
D 2 1 2
#averaged
a b c
A 0.5 1 NA
B 1 0.5 NA
C 0.5 0.5 0.5
D 1 0.5 1
Giá trị luôn luôn là '1'? –
Ví dụ, điều này có tác dụng 'res <- do.call (rbind, strsplit (tên (unlist (lstX))," \\. ")); bảng (res [, 1], hệ số (res [, 2])) '? hoặc 'table (res [, 1], factor (res [, 2]))/2'? –
Tôi có cả hai danh sách nhị phân và có trọng số để một cái gì đó hoạt động trên cả hai sẽ là tuyệt vời –