Bir B vektörünü bir matris A'daki her bir sütuna karşı germek istiyorum. Bu, eksik veri yoksa önemsizdir, ancak A matrisi eksik değerler içeriyorsa, A'ya karşı regresyonum yalnızca tüm satırları içerecek şekilde sınırlandırılmıştır. değerler var (varsayılan na.omit davranışı). Bu, eksik veri içermeyen sütunlar için hatalı sonuçlar üretir. B matrisi sütununu, A matrisinin ayrı sütunlarına göre gerileyebilirim, ancak yapacaklarım gereken binlerce regresyon var ve bu, oldukça yavaş ve inelegant. Na.exclude fonksiyonu bu durum için tasarlanmış gibi görünüyor, ama ben işi yapamaz. Neyi yanlış yapıyorum burada? Önemli ise, OSX'de R 2.13 kullanılması.
A = matrix(1:20, nrow=10, ncol=2)
B = matrix(1:10, nrow=10, ncol=1)
dim(lm(A~B)$residuals)
# [1] 10 2 (the expected 10 residual values)
# Missing value in first column; now we have 9 residuals
A[1,1] = NA
dim(lm(A~B)$residuals)
#[1] 9 2 (the expected 9 residuals, given na.omit() is the default)
# Call lm with na.exclude; still have 9 residuals
dim(lm(A~B, na.action=na.exclude)$residuals)
#[1] 9 2 (was hoping to get a 10x2 matrix with a missing value here)
A.ex = na.exclude(A)
dim(lm(A.ex~B)$residuals)
# Throws an error because dim(A.ex)==9,2
#Error in model.frame.default(formula = A.ex ~ B, drop.unused.levels = TRUE) :
# variable lengths differ (found for 'B')