Ben R yeni duyuyorum ve benim amiri bu kod sniplet var: öğrendim olarakortalaması (data.frame) geçersiz, alternatifler neler?
for (i in 1:k) mean.mat[i, ] <- mean(data.frame[i])
Ancak, değil artık çalışmaz veri çerçevelerinin anlamına gelir. Bu yüzden aşağıdaki solüsyon ile gelip çalıştı:
for (i in 1:k) mean.mat[i, ] <- lapply(norm.df[i], mean, na.rm = TRUE)
Ama şu hata mesajı alıyorum:
Bu işe yaramazsa nedenError in mean.mat[i, ] <- lapply(norm.df[i], mean, na.rm = TRUE) : incorrect number of subscripts on matrix
bilen var mı ve ben mean()
yerine nasıl işlev?
'ortalama (data.frame [, i)) 'ilk' for' döngüsünde çünkü data.frame [i] 'hala bir data.frame ve bir' vector' değil. '' '' 'Vektör' üzerinde çalışır. Bir vektöre dönüştürmek için, 'i' önce ',' kullanın. İkinci seçenekte, "ben" seçeneği ve "for" döngüsü kullanıldığında gerekli değildir. "Lapply" yani "lapply (norm.df, mean, na.rm = TRUE)" – akrun
Hızlı yardımınız için teşekkür ederiz. ! Ancak, (i: 1: k için) ilk çözümünü denediğimde, mean.mat [i,] <- mean (norm.df [, i]) yine de şu hatayı alıyorum: mean.mat dosyasında hata [i, ] <- mean (norm.df [, i]): matriste yanlış sayıda abonelik var. İkinci çözümü denediğimde aynı hatayı alıyorum ("matriste hatalı sayıda abonelik var.) – Sabrina
" mean.mat <- numeric (ncol (norm.df)) 'i başlatmanız gerektiğini düşünüyorum ve daha sonra 'için seq_len (ncol (norm.df))) {mean.norm [i] <- ortalama (norm.df [, i], na.rm = TRUE)} ' – akrun