【问题标题】:R str function of filtered (dplyr) data frame [duplicate]过滤(dplyr)数据帧的R str函数[重复]
【发布时间】:2019-08-08 19:43:05
【问题描述】:

我在“PLZ”列的一行中有一个带有“#”的数据框。 数据框的 str 函数给了我

 $ PLZ                 : Factor w/ 1939 levels "#","10115","10117",..: 1

它将“#”显示为该列中数据的级别。

当将所有带有“#”的条目过滤到一个新的数据帧中并为过滤后的数据帧调用 str 函数时,我仍然会得到一个“#”,显示为“PLZ”列中的数据级别。

    filtered_data <-filter(data_frame,PLZ!="#")
    str(filtered_data)
'data.frame':   85297 obs. of  25 variables:
...
$ PLZ                 : Factor w/ 1939 levels "#","10115","10117",..: 647 588 499 499 499 499 499 499 499 499 ...
 ...

由于 'PLZ' 中所有带有 '#' 的条目都被过滤掉了,我预计 str 函数的输出中不会有 '#' 的级别条目。

对此有解释吗?

【问题讨论】:

  • help("droplevels")

标签: r string function filter dplyr


【解决方案1】:

尝试使用 droplevels,如下所示:

data_frame <- data.frame(PLZ = as.factor(c("#","10115","10117")))
filtered_data <-filter(data_frame,PLZ!="#") %>% droplevels()
str(filtered_data)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-16
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 2021-07-21
    • 1970-01-01
    相关资源
    最近更新 更多