我想要droplevels
一个数据框(请不要将此问题标记为重复:))。鉴于所有可用的方法,只有一种有效。我究竟做错了什么?例子:
> df = data.frame(x = (c("a","b","c")),y=c("d","e","f"))
> class(df$x)
[1] "factor"
> levels(df$x)
[1] "a" "b" "c"
方法1不起作用:
> df1 = droplevels(df)
> class(df1$x)
[1] "factor"
> levels(df1$x)
[1] "a" "b" "c"
方法2不起作用:
> df2 = as.data.frame(df, stringsAsFactors = FALSE)
> class(df2$x)
[1] "factor"
> levels(df2$x)
[1] "a" "b" "c"
方法3不起作用:
> df3 = df
> df3$x = factor(df3$x)
> class(df3$x)
[1] "factor"
> levels(df3$x)
[1] "a" "b" "c"
方法4终于奏效了:
> df4 = df
> df4$x = as.vector(df4$x)
> class(df4$x)
[1] "character"
> levels(df4$x)
NULL
在工作时,我认为方法 4 是最不优雅的。你能帮我调试一下吗?非常感谢
编辑:以下评论和答案:我想从数据框中删除因子结构,而不仅仅是droplevels