如何按包含文本和数字的列标题对数据框进行排序[重复]
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 <int> <int> <chr> <chr> 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()
的问题。以上是关于如何按包含文本和数字的列标题对数据框进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章