Ich habe zwei Listen und ich möchte sie in Bezug auf NA
konsistent machen. Put NA Wenn NA in einer der beiden Listen ist, ohne sich in der Struktur der Liste zu ändern.Wie behandelt man NA in zwei Listen?
set.seed(123)
m1 <- matrix(nrow=2,ncol=2,data=runif(4))
m1[1,1] <- NA
m2 <- matrix(nrow=2,ncol=2,data=runif(4))
m2[1,2] <- NA
lis <- list(m1, m2)
m1 <- matrix(nrow=2,ncol=2,data=runif(4))
m2 <- matrix(nrow=2,ncol=2,data=runif(4))
m2[2,1] <- NA
bis <- list(m1, m2)
habe ich versucht, dies aber ohne Erfolg bis[is.na(lis)]=NA
gewünschte Ausgabe:
> lis
[[1]]
[,1] [,2]
[1,] NA 0.9568333
[2,] 0.4566147 0.4533342
[[2]]
[,1] [,2]
[1,] 0.9404673 NA
[2,] 0.0455565 NA
> bis
[[1]]
[,1] [,2]
[1,] NA 0.9568333
[2,] 0.4566147 0.4533342
[[2]]
[,1] [,2]
[1,] 0.6775706 NA
[2,] 0.5726334 NA
Ersetzen die erste Zeile mit: 'z <- Map (funct ion (...) {dots <- as.list (...); arr <- do.call (abind, c (Punkte, entlang = 3)); apply (arr, 1: 2, beliebig)}, lapply (lis, is.na), lapply (bis, is.na)) '. Ich denke, das sollte funktionieren. Wahrscheinlich langsamer. Benötigt das 'abind'-Paket. Key ersetzt '|' durch 'any'. – Bazz
@Bazz, bitte gehen Sie voran und fügen Sie es Ihrer Antwort hinzu. Ich werde sehen, ob ich eine andere Annäherung –
finden kann, es ist eine Anpassung Ihrer Antwort, nicht meins. 'as.list' sollte nur' liste' sein. – Bazz