8
A
回答
9
或者您可以嘗試na.approx
從包zoo
:「Missing values(
vals <- c(1, NA, NA, 7, NA, 10)
na.approx(vals)
# [1] 1.0 3.0 5.0 7.0 8.5 10.0
na.approx
是基於base
功能approx
,它可以用來代替:NAS)是由線性插值」
library(zoo)
x <- c(56, NA, 70, 96)
na.approx(x)
# [1] 56 63 70 96
,如果你有一個以上的連續NA
這也適用代替
vals <- c(1, NA, NA, 7, NA, 10)
xout <- seq_along(vals)
x <- xout[!is.na(vals)]
y <- vals[!is.na(vals)]
approx(x = x, y = y, xout = xout)$y
# [1] 1.0 3.0 5.0 7.0 8.5 10.0
8
假設你有一個這樣的data.frame df
:
> df
name grade
1 A 56
2 B NA
3 C 70
4 D 96
5 E NA
6 F 95
然後你可以使用以下命令:
> ind <- which(is.na(df$grade))
> df$grade[ind] <- sapply(ind, function(i) with(df, mean(c(grade[i-1], grade[i+1]))))
> df
name grade
1 A 56
2 B 63
3 C 70
4 D 96
5 E 95.5
6 F 95
0
使用中位數代替平均值的替代解決方案由na.roughfix
功能的randomForest
包。 如documentation中所述,它可以處理數據幀或數字矩陣。 具體而言,對於數字變量,NAs
被列中值替換。對於因素變量,NAs
被替換爲最常見的級別(隨機打破關係)。如果對象不包含NAs
,則它將保持不變。
使用相同的例子如@Henrik,
library(randomForest)
x <- c(56, NA, 70, 96)
na.roughfix(x)
#[1] 56 70 70 96
或具有更大的矩陣:
y <- matrix(1:50, nrow = 10)
y[sample(1:length(y), 4, replace = FALSE)] <- NA
y
# [,1] [,2] [,3] [,4] [,5]
# [1,] 1 11 21 31 41
# [2,] 2 12 22 32 42
# [3,] 3 NA 23 33 NA
# [4,] 4 14 24 34 44
# [5,] 5 15 25 35 45
# [6,] 6 16 NA 36 46
# [7,] 7 17 27 37 47
# [8,] 8 18 28 38 48
# [9,] 9 19 29 39 49
# [10,] 10 20 NA 40 50
na.roughfix(y)
# [,1] [,2] [,3] [,4] [,5]
# [1,] 1 11 21.0 31 41
# [2,] 2 12 22.0 32 42
# [3,] 3 16 23.0 33 46
# [4,] 4 14 24.0 34 44
# [5,] 5 15 25.0 35 45
# [6,] 6 16 24.5 36 46
# [7,] 7 17 27.0 37 47
# [8,] 8 18 28.0 38 48
# [9,] 9 19 29.0 39 49
#[10,] 10 20 24.5 40 50
相關問題
- 1. 按行替換NA值意味着
- 2. 通過與該行的行替換NA意味着
- 3. 過濾NA值意味着
- 4. 什麼robots.txt意味着在這一行?
- 5. 用同一行中的另一個單元替換「NA」與R
- 6. R行意味着在多個列按組(或唯一ID)
- 7. 查找和行替換缺失值意味着
- 8. 什麼是&&,===意味着一行?
- 9. 替換在numpy.random.choice中意味着什麼?
- 10. 如何用R中的NA替換一行中的值?
- 11. 什麼是「?」和「:」符號意味着在一行java代碼中?
- 12. 與NA替換除了最後一行給出ID,其中R
- 13. 運行時在.NET CLR的上下文中意味着什麼?
- 14. 什麼%*%意味着R中
- 15. 如何在R中替換NA與NA
- 16. 「上下文」一詞在結構中通常意味着什麼?
- 17. 在Python上替換一行
- 18. 計算意味着在分組行
- 19. 上下文切換意味着模式切換
- 20. 如果花樣在下一行上,則使用sed替換行
- 21. 計算意味着在一個列表
- 22. 得到錯誤R中嘗試計算意味着在包含NA
- 23. 將NA替換爲上一次出現
- 24. K意味着在R中的文本數據上進行聚類
- 25. 水包裝R:參數意味着,不同的行數:1,0
- 26. R錯誤:參數意味着不同的行數
- 27. 簡化可怕的R代碼來調整行意味着
- 28. 在安靜模式下運行PHP意味着什麼?
- 29. 用鄰接行R的副本替換NA
- 30. HTML和CSS與行有關的問題,下一行附着在上一行
如果相鄰的值丟失,以及?也許嘗試[這種方法](http://stackoverflow.com/questions/22736316/r-missing-value-replacement-function/22736656#22736656)? –