如何按包含文本和数字的列标题对数据框进行排序[重复]

Posted

技术标签:

【中文标题】如何按包含文本和数字的列标题对数据框进行排序[重复]【英文标题】:How to sort dataframe by column header which is a mix of text and numbers [duplicate] 【发布时间】:2017-12-19 06:24:17 【问题描述】:

我有一个如下所示的数据框

   GR1-text GR11-text GR12-text GR2-text
A    1          1       0          0
B    1          0       1          1

我想将数据框排序为:

   GR1-text  GR2-text  GR11-text  GR12-test
A   1         0         1           0
B   1         1         0           1

我试过following 没用

test <- df[ , order(names(df))]

我也发现了这个custom function,但我看不到让它工作。

【问题讨论】:

GR-12-text 是错字吗? 很抱歉。我现在改。谢谢 library(gtools); df[, mixedsort(names(df))] @RonakShah 这行得通。感谢磨坊。你想把答案写在下面吗? @AudileF 实际上这个问题之前已经被问过,因此,它被标记为与之前的问题重复。 【参考方案1】:

试试order(readr::parse_number(names(df)))

【讨论】:

感谢@F.Prive。但我收到一个错误Warning: 43 parsing failures. row # A tibble: 5 x 4 col row col expected actual expected &lt;int&gt; &lt;int&gt; &lt;chr&gt; &lt;chr&gt; actual 1 82 NA a number - row 2 83 NA a number - col 3 84 NA a number - expected 4 85 NA a number - actual 5 86 NA a number - ... ........ See problems(...) for more details. 你能提供所有的名字吗?或者将parse_number() 结果放入变量中,查看problems() 的问题。

以上是关于如何按包含文本和数字的列标题对数据框进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何同时对熊猫数据框中的列进行排序[重复]

按列名对数据框的列进行排序为日期

如何根据基于其他列的列对数据框进行排序[重复]

如何组合两个数据框并自然地对混合字母数字类型的列进行排序?

首先按最大负值对熊猫数据框的列进行排序

基于多个列对包含numpy文本数组中的数字的列进行排序