1

我正在使用 RStudio 中的 View() 频繁进出的宽数据框。我的大部分注意力都集中在左边的几列上,但我经常需要滚动到最右边的框架外的列。是否有一种“快速而肮脏”的方式来“按名称”排列某些列的顺序并跟踪其余列?

我不想按位置对列进行排序,因为我可能需要返回一两步并包含更多列,然后这些位置可能指向错误的列。我不想进行子集化,因为我永远不知道我可能需要目视检查右侧的哪些列。

我的真实数据大约有 40 列宽;我已经包括了一个小假人集来说明....

library(qdap)
library(dplyr)
arranger = data.frame(col1 = qcv(tom, dick, harry),
                  col2 = qcv(man, woman, child),
                  col3 = qcv(tall, small, middle),
                  col4 = qcv(blond, red, fair),
                  col5 = qcv(africa, europe, moon),
                  col6 = qcv(dead, alive, zombie),
                  col7 = qcv(funny, boring, sad),
                  stringsAsFactors = F)

例如,我想将 col3 和 col5 作为前两列,然后将其余列放在后面。我正在寻找一种快速的方法,沿着 dplyr 的 select() 线......

排列器 = 选择(排列器,col3,col5,'然后是其他列')

请问有人有什么好主意吗?TIA

4

1 回答 1

2

如果您想使用前面提到的 dplyr 包,那么 Everything() 将实现此目的。

这是一些更新的代码,使用您的示例:

library(qdap)
library(dplyr)

arranger <-  data.frame(col1 = qcv(tom, dick, harry),
                      col2 = qcv(man, woman, child),
                      col3 = qcv(tall, small, middle),
                      col4 = qcv(blond, red, fair),
                      col5 = qcv(africa, europe, moon),
                      col6 = qcv(dead, alive, zombie),
                      col7 = qcv(funny, boring, sad),
                      stringsAsFactors = F)

arrangerNew <- dplyr::select(arranger, col3, col5, everything())
于 2016-02-19T12:16:44.597 回答