我想交换 data.frame 中的两列。我知道我可以做类似的事情:
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... 应该是一种方法。;-)