#your vector
vector = c("5213456", "17235896", "23731074")
# First convert numbers to strings.
strs = as.character(vector)
# then split the strings into individual characters.
char = strsplit(strs, "")
# then sort (arrange) the characters in ascending order for each string.
sorted_char = lapply(char, function(x) sort(x))
# Finally join the sorted characters into strings.
sorted_strs = lapply(sorted_char, function(x) paste(x, collapse = ""))
# Then unlist
unlist_strs = unlist(sorted_strs)
在基本 R 中,您可以
split
,然后sort
,然后将它们全部粘贴在一起。strsplit
创建一个列表,因此使用lapply
或sapply
迭代它:在答案中,它看起来像
lapply
和vapply
是示例数据上最快的,但在较长的向量中,情况似乎是均匀的:在基数 R 中:
我会这样:
简短但不是最有效的
或者可能会快一点
如果您想了解它是如何工作的,您可以按照以下步骤操作
输出如下