您好,登錄后才能下訂單哦!
> a <- 2:12 > b <- seq(2,23,2) > c <- c(1:11)^3 > d <- c(5:8, 30:36) > df <- data.frame(a,b,c,d) > df$a[df$a==8] <- NA > df$b[df$b==8] <- NA > df$c[df$c==8] <- NA > df$d[df$d==8] <- NA > df$d[df$d==32] <- NA > df a b c d 1 2 2 1 5 2 3 4 NA 6 3 4 6 27 7 4 5 NA 64 NA 5 6 10 125 30 6 7 12 216 31 7 NA 14 343 NA 8 9 16 512 33 9 10 18 729 34 10 11 20 1000 35 11 12 22 1331 36 // 只根據第四列,也就是d 的 NA,移除相應的行 > bad.d <- is.na(df$d) > bad.d [1] FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE > df[!bad.d,] a b c d 1 2 2 1 5 2 3 4 NA 6 3 4 6 27 7 5 6 10 125 30 6 7 12 216 31 8 9 16 512 33 9 10 18 729 34 10 11 20 1000 35 11 12 22 1331 36 // 根據第二列和第三列的NA 移除相應的行 > df[complete.cases(df[,2:3]),] a b c d 1 2 2 1 5 3 4 6 27 7 5 6 10 125 30 6 7 12 216 31 7 NA 14 343 NA 8 9 16 512 33 9 10 18 729 34 10 11 20 1000 35 11 12 22 1331 36 // 根據第二列和 第四列的NA,移除相應的行 > df[complete.cases(df[,c(2,4)]),] a b c d 1 2 2 1 5 2 3 4 NA 6 3 4 6 27 7 5 6 10 125 30 6 7 12 216 31 8 9 16 512 33 9 10 18 729 34 10 11 20 1000 35 11 12 22 1331 36 // 根據所有列的NA,移除相應的行 > df[complete.cases(df),] a b c d 1 2 2 1 5 3 4 6 27 7 5 6 10 125 30 6 7 12 216 31 8 9 16 512 33 9 10 18 729 34 10 11 20 1000 35 11 12 22 1331 36 > // 這個效果跟上面的df[complete.cases(df),] 相同 > na.omit(df) a b c d 1 2 2 1 5 3 4 6 27 7 5 6 10 125 30 6 7 12 216 31 8 9 16 512 33 9 10 18 729 34 10 11 20 1000 35 11 12 22 1331 36 // 計算某一列的平均值, 移除NA值 > mean(df$d, na.rm=TRUE)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。