Dire che ho un elenco annidato di vettori.appiattisce l'elenco annidato con la media dei vettori
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)
Come visto, ciascun vettore A,B,C,D
verificano due volte con a,b,c
presente in diverse frequenze.
Come sarebbe il modo più efficiente di appiattire gli elenchi in modo che a,b,c
venga sommato o una media su A,B,C,D
attraverso gli elenchi annidati, come illustrato di seguito. La vera lista contiene diverse centinaia di migliaia di liste annidate.
#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
I valori sono sempre '1's? –
Ad esempio, funziona 'res <- do.call (rbind, strsplit (nomi (unlist (lstX))," \\. ")); tabella (res [, 1], factor (res [, 2])) '? o 'table (res [, 1], factor (res [, 2]))/2'? –
Ho entrambe le liste binarie e ponderate quindi qualcosa che funziona su entrambi sarebbe ottimo –