很抱歉初学者的问题。
我有一个数据框(我想,如果我在这里错了,请纠正我。)
data <- read.csv("adult.data", sep=',', header=F)
Run Code Online (Sandbox Code Playgroud)
数据是https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
当数据丢失时,它只有“?” 而不是数据。我需要计算每列中丢失了多少数据。
我可以计算数字的实例,但不能计算字符串。
Col 1 是年龄,所以我可以这样做:
length(which(data[,1] == 55))
Run Code Online (Sandbox Code Playgroud)
它会告诉我这个数据集中有多少人是 55 岁。
但如果我尝试
length(which(data[,2] == "?"))
Run Code Online (Sandbox Code Playgroud)
它说0。
如何比较 R 中的字符串?
看起来如果你用na.strings = "?"and再次阅读它strip.white = TRUE,你会得到正确的NA值并且能够使用is.na()
df <- read.csv(
"http://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data",
header = FALSE,
na.strings = "?",
strip.white = TRUE
)
## total NA in the data
sum(is.na(df))
# [1] 4262
## total NA for column 2
sum(is.na(df[[2]]))
# [1] 1836
## count NA by column
colSums(is.na(df))
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15
# 0 1836 0 0 0 0 1843 0 0 0 0 0 0 583 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2549 次 |
| 最近记录: |