मेरे पास दो सूचियां हैं और मैं उन्हें NA
के संदर्भ में सुसंगत बनाना चाहता हूं। एनए रखें जब भी सूची की संरचना में किसी और चीज में बदलाव किए बिना दो सूचियों में से एक में एनए है।दो सूचियों में एनए से कैसे निपटें?
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)
मैं इस कोशिश की, लेकिन कोई सफलता के साथ bis[is.na(lis)]=NA
वांछित उत्पादन:
> 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
पहली पंक्ति बदलें के साथ: 'z <- मानचित्र (Funct आयन (...) {डॉट्स <- as.list (...); arr <- do.call (abind, c (बिंदुओं, साथ = 3)); लागू करें (एआर, 1: 2, कोई भी)}, लापरवाही (lis, is.na), लापरवाही (बीआईएस, is.na)) '। मुझे लगता है कि काम करना चाहिए। हालांकि शायद धीमी है। 'Abind' पैकेज की आवश्यकता है। कुंजी 'किसी भी' के साथ '|' को बदल रहा है। – Bazz
@Bazz, कृपया आगे बढ़ें और इसे अपने उत्तर में जोड़ें। मैं देखूंगा कि मुझे एक अलग दृष्टिकोण मिल सकता है –
यह आपके उत्तर का अनुकूलन है, मेरा नहीं। 'as.list' सिर्फ 'सूची' होना चाहिए। – Bazz