【问题标题】:Summary remembers the previous 'garbage' values摘要记住以前的“垃圾”值
【发布时间】:2015-11-05 11:41:34
【问题描述】:

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

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 的值?

我为什么需要这个 - 有 100 多列。我正在使用一个新的标志列,当它在任何单元格值中遇到“错误”时设置为 1,最后,我删除了标志 = 1 的记录。 我需要查看整个数据的简短摘要。,类似于

boy : 19232
error : 156
girl : 14565

提前感谢您的帮助!

【问题讨论】:

  • 可能你有一个因素,水平仍然存在。删除级别,然后重试。共享一些数据会很好,请参阅stackoverflow.com/questions/5963269/…
  • 没有。我已将它们转换为“错误”。

标签: r summary garbage data-cleaning


【解决方案1】:

您要查找的函数可能是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.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 2014-11-24
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      相关资源
      最近更新 更多