在矩阵中,如果有一些缺失数据,则记录为NA。
NA
na.rm
7kjnsjlb1#
na.omit()将接受矩阵(和 Dataframe ),并只返回那些没有NA值的行--它需要complete.cases()更进一步,为您删除FALSE行。
na.omit()
complete.cases()
> x <- data.frame(c(1,2,3), c(4, NA, 6)) > x c.1..2..3. c.4..NA..6. 1 1 4 2 2 NA 3 3 6 > na.omit(x) c.1..2..3. c.4..NA..6. 1 1 4 3 3 6
ohtdti5x2#
我认为 * na.rm * 通常只在函数中起作用,比如说 mean 函数,我会选择 complete.cases:http://stat.ethz.ch/R-manual/R-patched/library/stats/html/complete.cases.htm假设您有以下3x 3矩阵:
x <- matrix(c(1:8, NA), 3, 3) > x [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 NA
那么你就可以得到这个矩阵的所有情况
y <- x[complete.cases(x),] > y [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8
> complete.cases(x) [1] TRUE TRUE FALSE
然后索引矩阵 x 的行并添加“”,表示需要所有列。
piztneat3#
如果你想删除包含NA的行,你可以使用apply()应用一个快速函数来检查每一行。例如,如果你的矩阵是x,
goodIdx <- apply(x, 1, function(r) !any(is.na(r))) newX <- x[goodIdx,]
3条答案
按热度按时间7kjnsjlb1#
na.omit()
将接受矩阵(和 Dataframe ),并只返回那些没有NA值的行--它需要complete.cases()
更进一步,为您删除FALSE行。ohtdti5x2#
我认为 * na.rm * 通常只在函数中起作用,比如说 mean 函数,我会选择 complete.cases:http://stat.ethz.ch/R-manual/R-patched/library/stats/html/complete.cases.htm
假设您有以下3x 3矩阵:
那么你就可以得到这个矩阵的所有情况
然后索引矩阵 x 的行并添加“”,表示需要所有列。
piztneat3#
如果你想删除包含NA的行,你可以使用apply()应用一个快速函数来检查每一行。例如,如果你的矩阵是x,