Как добавить символы в указанные c строки? - PullRequest
2 голосов
/ 05 мая 2020

Я новичок в R, и это меня беспокоит.

У меня есть такой столбец:

2009m1

2009m2

2009m3

...

2009m12

Как добавить нули в месяцы, в которых только 1 di git? Я хочу что-то вроде этого:

2009m01

2009m02

2009m03

...

2009m12

Спасибо !

1 Ответ

1 голос
/ 05 мая 2020

Вот вариант с sub, где мы сопоставляем 'm', за которым следует di git (\\d - фиксируется как группа (...)) в конце ($) строки и заменить на 'm' '0' и обратную ссылку (\\1) захваченной группы

df1$col1 <- sub("m(\\d)$", "m0\\1", df1$col1)
df1$col1
#[1] "2009m01" "2009m02" "2009m03" "2009m04" "2009m05" "2009m06" "2009m07" "2009m08" "2009m09" "2009m10" "2009m11"
#[12] "2009m12"

Или другой вариант: gsubfn на sprintf

library(gsubfn)
gsubfn("\\d+$", ~ sprintf('%02d', as.numeric(x)), df1$col1)

данные

df1 <- data.frame(col1 = paste0(2009, 'm', 1:12), stringsAsFactors = FALSE)
...