заказать список укусов в г - PullRequest
0 голосов
/ 19 марта 2020

У меня есть две переменные: id и income (список символов)

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, который включает упорядоченные значения столбца доход. Окончательный результат будет выглядеть следующим образом:

ПРИМЕЧАНИЕ. Мне все еще нужно сохранить ведущие нули

enter image description here

Ответы [ 2 ]

5 голосов
/ 19 марта 2020

Мы можем разделить строку на ";", 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
1 голос
/ 19 марта 2020

Мы можем использовать gsubfn

library(gsubfn)
df$income_order <- gsubfn("(\\d+);(\\d+)",  ~ paste(sort(c(x, y)), collapse=";"), df$income)
df$income_order
#[1] "2322;5125" "0110;2012" "0912;2212" "0145;1012" "1102;1545" "1010;2028"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...