0

データフレームが必要ですdroplevels(この質問を重複としてマークしないでください:))。利用可能なすべてのメソッドを考えると、1 つだけが機能します。私は何を間違っていますか?例:

> 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

4

2 に答える 2