1. ホーム
  2. r

[解決済み] R dplyrを使った列の最後尾への移動

2023-06-25 11:23:06

質問

data.frameに n のカラムを移動できるようにしたいです。 1-(n-1) の位置から、n番目のカラムに移動させたい(つまり、最後尾でないカラムを最後のカラムにする)。私はまたそれを使用したいと思います dplyr . 私は、すべての列の名前を単に入力することなく、そうしたいと思います。

例えば

data<-data.frame(a=1:5, b=6:10, c=11:15)

これは動作しますが dplyr の方法です。

data[,c(colnames(data)[colnames(data)!='b'],'b')]

これは dplyr の作り方は、カラム b を最初に作ります。

data%>%select(b, everything())

しかし、これではカラムを b を最後にします。

data%>%select(everything(), b)

これは動作しますが、すべての列をタイプアウトする必要があります。

data%>%select(a,c,b)

では、これを行うためのエレガントなdplyrの方法はあるのでしょうか?

関連する質問です。

どのように解決するのですか?

少しいじった後、以下のように動作し、入力はほとんど必要ありません。

data %>% select(-b,b)



UPDATE: dplyr 1.0.0

dplyr 1.0.0 を導入しています。 relocate 動詞を導入します。

data %>% relocate(b, .after = last_col())

私はまだ昔の"hacky"の方法が好きです。