如何在双字母之前对单字母进行排序[关闭]

问题描述 投票:1回答:2

我需要能够从A-Z然后从AA-ZZ订购我的数据输出。问题是,我只能让R按字母顺序排序,因此AA在B和C之前。

有没有一种方法可以先按字母顺序将数据排序为单个字母,然后再按字母顺序将两个字母(a,b,c,aa,bb,cc)排序?

r sorting dataframe vector alphabetical
2个回答
5
投票

给出

set.seed(1)
x <- sample(c("a", "b", "c", "aa", "bb", "cc"))
x
# [1] "b"  "cc" "c"  "aa" "a"  "bb"

您可以做

x[order(nchar(x), x)]
# [1] "a"  "b"  "c"  "aa" "bb" "cc"

2
投票

我们可以将unlistsplit一起使用>

unlist(lapply(split(v1, nchar(v1)), sort), use.names = FALSE)

数据

set.seed(24)
v1 <- sample(c(LETTERS[1:5], strrep(LETTERS[1:5], 2)), 20, replace = TRUE)
© www.soinside.com 2019 - 2024. All rights reserved.