Ben edindiği bir matris benim NA değerleri değiştirmek istiyor demektir.satırla NA değerlerini değiştirin
yani, tablonun şu sıra:
1 2 1 NA 2 1 1 2
1 2 1 1.43 2 1 2
teşekkür ederiz olacaktı.
Ben edindiği bir matris benim NA değerleri değiştirmek istiyor demektir.satırla NA değerlerini değiştirin
yani, tablonun şu sıra:
1 2 1 NA 2 1 1 2
1 2 1 1.43 2 1 2
teşekkür ederiz olacaktı.
x[is.na(x)] <- mean(x, na.rm=TRUE) # for vectors or for a matrix as a whole
t(apply(x, 1, function(xv) { xv[is.na(xv)] <-
mean(xv, na.rm=TRUE)
return(xv)}
)) # for a row-oriented sol'n
Bu, tüm matrisin ortalamasını döndürmez mi? –
Olur. Ben o bir satır odaklı çözüm istedim alamadım ama bir tane koyacağız. –
a = c(NA, 1, 2, 3, 10)
a[which(is.na(a)==TRUE)] = mean(a,na.rm = T)
Bu işe yaramalı, ancak gereksiz yere karmaşık. is.na (a) Boole'lerin bir vektörünü döndürür, bu nedenle == TRUE gereksizdir. "hangisi" gerekli değildir, çünkü vektörleri ya bir uzunluk vektörü <= uzunluk (a) ile ya da "uzunluk (a)" uzunluğundaki bir DOĞRU ve YANLIŞlar içeren bir vektörle (veya 0/1 TRUE/FALSE öğesine zorlandı). Son olarak, T ve F'yi TRUE ve FALSE için kullanmaktan kaçının, çünkü bunların üzerine yazabilirler. –
Daha fazlasını düşündüğüm antrenman yönü: d – user702846
Bir matris için aynı problem, her şeyin ortalamasını alır ve yerini alır. –
İşte bazı örnek verileri bu.
m <- matrix(1:16, nrow=4)
m[c(1,4,6,11,16)] <- NA
Ve işte, satır anlamında eksikleri nasıl dolduracağım.
k <- which(is.na(m), arr.ind=TRUE)
m[k] <- rowMeans(m, na.rm=TRUE)[k[,1]]
Verileriniz data.frame
; as.matrix
'u kullanarak bir matrise dönüşmeniz gerekecek. Bu formatta bırakmak isteyebilirsiniz ya da olmayabilir; geri kullanımı as.data.frame
dönüştürmek.
+1 Bu bilet – joran
Teşekkür ederiz. Kodunuzu kullanarak aşağıdaki hata iletisini alıyorum: Hata [[-. Data.frame' ('* tmp *', k, value = c (3.67857142857143, 3.34375,: yalnızca mantıksal matris aboneliklerine izin verilir – Delphine
Veri çerçevenizi önce bir matrise ('as.matrix') yapın, sonra yapın ve sonra geri dönün (' as.data.frame'). – Aaron
Bunu neden yapmak istersiniz * row-wise *? Sadece kontrol etmek değişkenleri objeler/örnekler ile karıştırmıyor. Genellikle, bu sütun-bilge, her bir değişkenin ortalamasını hesaplar ve bu değişkeni 'NA'nın değişkeni ile değiştirmek için kullanır. –
Ayrıca, read.table() 'bir data.frame döndürür. Bir veri çerçevesi veya uygun bir matris hakkında mı konuşuyorsunuz? –
@GavinSimpson Bunun bir nedeni, bir ölçümde kullanımla ilgili tekrarlanan soruları içeren anket verileri olacaktır. Diğer soruların araçları eksik verileri değiştirmek için kullanılacaktır. – Irwin