我使用带有'sloppy'字符串的大型df,其中包含字符,数字和标点字符,如下所示:
cnames <- c("X1_1", "X1_12", "X1_9", X11_9, "X4_112", "X4_2")
R
无法正确排序这些字符串,因为缺少必需的“前置零”。
我使用正则表达式将其转换为:
"X01_01", "X01_12", "X01_09", X11_09, "X04_12", "X04_02"
这需要相当多的编程(在RegEx上有点生锈)!
我想我不是唯一一个面临这个问题的人,所以我想知道:
是否有包裹:
如果它不存在,也许我找到一个很好的案例来编写一个包。
答案 0 :(得分:1)
要转换你的角色,你可以这样做:
cnames <- c("X1_1", "X1_12", "X1_9", "X11_9", "X4_112", "X4_2")
d <- read.table(text=sub("^X", "", cnames), sep="_")
sprintf("X%02d_%03d", d$V1, d$V2)
# > sprintf("X%02d_%03d", d$V1, d$V2)
# [1] "X01_001" "X01_012" "X01_009" "X11_009" "X04_112" "X04_002"