1. ホーム
  2. r

[解決済み] データフレーム内の列を先頭に移動させる

2023-01-14 23:35:33

質問

データフレームの最後の列を先頭に移動させたい(最初の列として)。どのように私はRでそれを行うことができますか?

私のdata.frameは、順序を変更するために約1,000の列を持っています。私はちょうど1つの列を選び、それを開始点に移動させたいのです。

どのように解決するには?

回答として追加する価値があるのか、コメントで良いのか分かりませんが、私は moveme という関数を書きました。これは、あなたが記述した言語でやりたいことをできるようにします。この関数はこの回答で見つけることができます。 https://stackoverflow.com/a/18540144/1270695

で動作します。 namesdata.frame で、列の並び替えに使える文字ベクトルを生成します。

mydf <- data.frame(matrix(1:12, ncol = 4))
mydf
moveme(names(mydf), "X4 first")
# [1] "X4" "X1" "X2" "X3"
moveme(names(mydf), "X4 first; X1 last")
# [1] "X4" "X2" "X3" "X1"

mydf[moveme(names(mydf), "X4 first")]
#   X4 X1 X2 X3
# 1 10  1  4  7
# 2 11  2  5  8
# 3 12  3  6  9


このようにシャッフルしている場合は data.framedata.table を使用し setcolorder (私の moveme 関数を使って)参照によって変更することができます。


質問の中で、あなたはまた、"私はただ1つの列を選び、それを最初に移動させたい"と述べています。もしそれが任意の列であり、特に最後の列でないなら、あなたはまた setdiff .

mtcars" データセットを操作していて、"am" 列を先頭に移動させたいと想像してください。

x <- "am"
mtcars[c(x, setdiff(names(mtcars), x))]