过滤(dplyr)数据帧的R str函数

时间:2019-03-18 12:25:36

标签: r string function filter dplyr

我在“ 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函数输出中没有“#”的级别条目。

对此有解释吗?

1 个答案:

答案 0 :(得分:0)

尝试使用droplevels,如下所示:

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