首页 文章

摘要会记住以前的'garbage'值

提问于
浏览
0

我有一个列的数据,提到了一个人的性别 . 不幸的是,很少有错误的列/错误的值 .

summary(data$gender)

给出类似的东西

boy : 19232
girl : 14565
Maths : 3
Science : 4
... some 20 garbage values : 1

我写了一个代码来将 boy, girl 以外的值替换为 error . 现在 summary(data$gender) 给出了类似的东西

boy : 19232
error : 156
girl : 14565
Maths : 0
Science : 0
... other garbage values : 0

有什么方法可以阻止计数为0的打印值吗?

Why I need this - 有超过100列 . 我正在使用一个新的标志列,它在遇到任何单元格值的"error"时设置为1,最后,我删除了flag = 1的记录 . I need to view a short summary of the entire data. ,类似的东西

boy : 19232
error : 156
girl : 14565

在此先感谢您的帮助!

2 回答

  • 2

    你正在寻找的功能可能是 droplevels ,以剔除未使用的因子水平 .

    在你的情况下

    summary(droplevels(data)$gender)
    
  • 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.

相关问题