我有一个列的数据,提到了一个人的性别。不幸的是,很少有错误的列/错误的值。
summary(data$gender)
给出类似
的内容boy : 19232
girl : 14565
Maths : 3
Science : 4
... some 20 garbage values : 1
我编写了一个代码,将男孩,女孩以外的值替换为错误。现在摘要(数据$性别)提供类似
的内容boy : 19232
error : 156
girl : 14565
Maths : 0
Science : 0
... other garbage values : 0
有什么方法可以阻止计数为0的打印值?
为什么我需要这个 - 有超过100列。我正在使用一个新的标志列,它遇到一个"错误"跨越任何单元格值,最后,我删除flag = 1的记录。 我需要查看整个数据的简短摘要。,类似
boy : 19232
error : 156
girl : 14565
提前感谢您的帮助!
答案 0 :(得分:2)
您要查找的功能可能是droplevels
,以便删除未使用的因子级别。
在你的情况下
summary(droplevels(data)$gender)
答案 1 :(得分:2)
以下是一个例子:
data = factor(c("girl","boy","girl","boy","math","girl","girl"), levels = c("girl", "boy", "math"))
> summary(data)
girl boy math
4 2 1
data2 = factor(c("girl","boy","girl","boy","math","girl","girl"), levels = c("girl", "boy", "math", "garbage"))
> summary(data2)
girl boy math garbage
4 2 1 0
> summary(droplevels(data2))
girl boy math
4 2 1
在data
一切都很好。但是在data2
中有另一个未使用的级别,它强制显示0。
正如@ user295691首先指出droplevels
(请参阅?droplevels
以获得快速参考)将帮助您摆脱这些错误级别。
我再说一遍,你在这里有一个因素,即使你将值设置为其他水平仍然存在。我可以谷歌的第一个合适的解释可能是this link here.