清理数据集,但在描述性统计信息中,有关已删除数据的信息仍然保留

时间:2019-04-23 13:20:47

标签: r dataframe

我有以下数据:

Animal Father Weight
1      John   55
2      John   60
3      Bruce  55
4      Peter  66
5      Sand   35
6      Sand   45
7      Loki   35
8      Loki   35

我想删除Father列仅出现一次的所有行。为此,我执行了以下操作:

New.dt= dt[!table(dt$Father)[dt$Father] <= 1, ]

好的,它工作得很好:

Animal Father Weight
    1      John   55
    2      John   60
    5      Sand   35
    6      Sand   45
    7      Loki   35
    8      Loki   35

但是当我为新的dataset(New.dt)做一些统计时,有关已删除父亲的信息仍然保留。像这样:

summary(New.dt$Father)

John  Bruce Peter Sand Loki
  2     0     0     2    2

这是所有统计信息,但我不想使用此幻象信息。如何排除这些信息?

1 个答案:

答案 0 :(得分:3)

问题在于列Father的类型为factor。 如果先将其转换为字符,就不会遇到以下问题:

dt$Father <- as.character(dt$Father)
New.dt= dt[!table(dt$Father)[dt$Father] <= 1,]
summary(New.dt$Father)

您可以从一开始就避免使用factor

  • 如果您使用data.frame创建数据,则可以设置stringsAsFactor = FALSE

  • 如果您使用read.table从csv文件(或类似文件)中读取文件,则还可以设置stringsAsFactor = F