Buna koşmaya devam ediyorum ve kolay bir iş olup olmadığını merak ediyorum. (Bir tamsayı matrisiyle bir data.frame alt kümesinin oluşturulması
> dat[sel.mat]
[1] 0.2582569 0.8455966 0.8828083 0.5384263 0.9574810 0.5623158
> dat[sel.mat] <- NA
Error in `[<-.data.frame`(`*tmp*`, sel.mat, value = NA) :
only logical matrix subscripts are allowed in replacement
ben hata iletisi için bir neden yok olduğunu fark: Bazı durumlar için ben daha mantıklı
N <- 12
N.NA <- 6
dat <- data.frame(V1=runif(N),V2=runif(N))
sel.mat <- matrix(c(sample(seq(N),N.NA),sample(ncol(dat),N.NA,replace=TRUE)),ncol=2)
Bu, seçim için çalışır bir matris subsetting düşünmek ancak değiştirme için bulmak Aynı öğeye işaret eden birden çok değiştirmenin olması durumunda ne yapacağınızı bilmezsiniz, ancak bu R'nin vektörler üzerinde tamsayı değiştirmeye izin vermesini engeller (örn. dat$V1[c(2,3)] <- NA
).
Tamsayı matrisi ile değiştirmeye izin vermenin uygun bir yolu var mı?
, 'dat [sel.mat] <- NA' ** ** desteklenir. Matriks indekslemesi, R-3.0.0'dan itibaren mevcut olacaktır. (Daha fazla bilgi için aşağıdaki cevaba bakın.) –