如果有一个较大的DF(成百上千个)列,其中不同的col_name按字母顺序随机分布:
df.x <- data.frame(2:11, 1:10, rnorm(10))
colnames(df.x) <- c("ID", "string", "delta")
如何按col_name的字母顺序对所有数据进行排序(垂直)?
实际上,我有数百个CSV(sep=”|“)文本文件,我需要将它们的列读入一个df,按字母顺序排列这些列,然后使用其他一些dplyf函数来获得最终结果。除了如何按字母顺序排列列之外,我已经解决了所有这些问题。我不想对列进行排序(上下)字母表,更确切地说,col_names及其对应数据的实际垂直方向。类似于在Excel中剪切和粘贴整列数据。
例如,我回顾了这种方法,但这是按字母顺序对行进行“排序”,这不是我想要做的。
How to sort a dataframe by column(s)?
谢谢!
8条答案
按热度按时间ctzwtxfj1#
试试这个
或者只是
2021年12月更新
新版本的
dplyr
(〉= 1.0.7)可以在没有noquote
的情况下工作:qnakjoqk2#
在dplyr中执行此操作的另一种方法是:
current_vars()
返回可排序的列名,select()
将取列名向量。0s0u357o3#
如果特定列必须是第一列(或最后一列),但其余列已排序,则可以:
euoag5mw4#
要使用最近的tidyverse(更具体地说,是
tidyselect
包)进行部分排序,请使用peek_vars()
:mefy6pfw5#
我们可以定义:
与其他解决方案不同,您可以在任何整洁的选择周围调用它,但在我们的情况下,它只能是:
5f0d552i6#
为什么不:
cedebl8k7#
使用
dplyr
:8i9zcol28#
由于没有答案提到
relocate()
:https://dplyr.tidyverse.org/reference/relocate.html