1
私は、他のものの中で、同じものを参照する2つの列を含むデータフレームを持っています。 1つは、もう1つの数値IDで、これは要因として解析されます。他の列のルックアップに基づいて因子レベルの順序を変更する
df = data.frame(
"id" = c(5, 3, 1, 2, 4, 5),
"val" = factor(c("a", "b", "c", "d", "e", "a")),
"someColumn" = c(13, 38, 91, 83, 19)
)
他の追加の列があるため、これらの要因レベルに重複があります。現在では、データフレームに表示される順序に関係なく、要素レベルはアルファベット順に並べられています。
ここに問題があります:私はそのIDに応じて因子のレベルを注文したいと思います。このようにして、特にプロットで作業するのが簡単になります。私はラベルを変更したくない。レベルを実際のIDに変更しても問題ありませんが、必要ではないと思います。
Warning message:
In `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels) else paste0(labels, :
duplicated levels in factors are deprecated
Iドン:重複があるため、
factor(df$val, levels = df$val[order(df$id)])
しかし、これは私の場合には動作しません:私が見つけた他の例では
は、提案がこのような何かをすることでしたデータを破棄したり、その順序を変更したりしたくないので、元のデータの行を削除したいのですが、データフレームの作業を続けます。警告と重複したレベルを別の方法で取り除くことはできますか?あるいは、私は別のアプローチを完全に使うべきですか?