首页 > 解决方案 > 在 r 中订购 stings 列表

问题描述

我拥有的数据包括两个变量:idincome(字符列表)

id <- seq(1,6)
income <- c("2322;5125",
           "0110;2012",
           "2212;0912",
           "1012;0145",
           "1545;1102",
           "1010;2028")

df <- data.frame(id, income)
df$income <- as.character(df$income)

我需要添加第三列income_order,其中包括列收入的有序值。最终输出看起来像

注意:我仍然需要保留前导零

在此处输入图像描述

标签: rstringsorting

解决方案


我们可以在 上拆分字符串";"sort然后paste将字符串拆分回来。

df$income_order <- sapply(strsplit(df$income, ";"), function(x) 
                          paste(sort(x), collapse = ";"))
df

#  id    income income_order
#1  1 2322;5125    2322;5125
#2  2 0110;2012    0110;2012
#3  3 2212;0912    0912;2212
#4  4 1012;0145    0145;1012
#5  5 1545;1102    1102;1545
#6  6 1010;2028    1010;2028

推荐阅读