【发布时间】:2020-02-12 19:20:47
【问题描述】:
应该足够简单,但它已成为一个难以解决的问题。我有按尾随小数分组的数据(上游数据源的产物)。例如,可以将组“3”的数据分组为 0.00003,而组“10”的数据为 24.00010。但是,当我同时运行 regexpr 代码和 str_sub 代码时,就好像 R 不认为最后一个 0 很重要。
示例数据
df <- data.frame(a = c(0.00003, 0.00010, 24.00003, 24.00010))
print(df)
a
1 0.00003
2 0.00010
3 24.00003
4 24.00010
期望的输出
a group
1 0.00003 group03
2 0.00010 group10
3 24.00003 group03
4 24.00010 group10
尝试 1 失败
df %>% mutate(group = paste0("group", regmatches(a, regexpr("(\\d{2}$)", a))))
a group
1 0.00003 group03
2 0.00010 group01
3 24.00003 group03
4 24.00010 group01
这个失败很奇怪,因为当我检查它时它有效:https://regexr.com/,使用(\d{2}$)
尝试 2 失败
df %>% mutate(group = paste0("group", str_sub(a, start = -2)))
a group
1 0.00003 group03
2 0.00010 group01
3 24.00003 group03
4 24.00010 group01
【问题讨论】: