5

data.frame 内の 2 つの列を交換したい。私は次のようなことができることを知っています:

dd <- dd[c(1:4, 6:5, 7:10)]

しかし、私はそれが洗練されておらず、潜在的に遅く(?)、プログラムフレンドリーではないことを発見しました(知っておく必要がありlength(dd)、スワップされた列がその値に近いかどうかの場合もあります...)それを行う簡単な方法はありますかデータフレーム全体を再割り当てせずに?

dd[2:3] <- dd[3:2]

[ <-属性ではなく値のみに関係するため、非常に「損失が多い」ことが判明しました。たとえば、次のようになります。

(dd <- data.frame( A = 1:4, Does = 'really', SO = 'rock' ) )
dd[3:2] 
dd[2:3] <- dd[2:1]
print(dd)

列名は明らかに反転していません...

何か案が?非常に長いリストに小さなカスタム関数を追加することもできますが、grrr... が方法になるはずです。;-)

4

2 に答える 2