仅当R中为数字时才提取字符串的最后一个分量

森林:

我有一个带有多个.分隔符的数据框我希望删除最后一次出现的字符,.但前提是它是数字。因此,在下面的示例中,a.b.c将保持不变,但a.b.1将变为两个值:a.b1我想我已经接近了,但无法弄清楚最后的片段。

have <- data.frame(x = c("a.b", "a.b.c", "a.b.1", "a.b.2", "9.a.b.c"))

want <- data.frame(x = c("a.b", "a.b.c", "a.b", "a.b", "9.a.b.c"),
                   y = c(0, 0, 1, 2, 0))
        
# attempt 1
have %>% mutate(y = sub('.*\\.', '', x))
        
# attempt 2
have %>% separate(x, c('y', 'z'), sep = '.*\\.', extra = 'merge', remove = FALSE)
rpolicastro:

这是一个单独的tidyverse解决方案

library("tidyr")

have %>%
  separate(x, c("x", "y"), "\\.(?=\\d+$)", fill="right") %>%
  replace_na(list(y=0))

        x y
1     a.b 0
2   a.b.c 0
3     a.b 1
4     a.b 2
5 9.a.b.c 0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅在Java中仅删除一位数字时,才删除字符串中的最后一位数字

如何使用JavaScript正则表达式提取字符串中的最后一个单词?

获取字符串中的最后一个字符

仅当为空白或“。”时才需要修剪最后一个字符串。

在R中仅一个已知字符串之间提取字符串

根据R中另一个向量中的字符从字符串中提取字符

蟒蛇。从Pandas列中提取字符串的最后一个字母

仅提取字符串中的第一组数字

根据Python中的一个条件提取字符串数据框中的数字

从字符串中提取字词的最后一个作为熊猫中的新列

仅当一组字符串中的一个匹配时才如何返回true?

提取R中字符串中的最后一个单词

获取字符串的最后一个单词

在Prolog中获取字符串的最后一个字符

仅当字符串中的第一个或最后一个字符时,才从字符串中删除该字符。

正则表达式提取字符串中的第一个和最后一个数字

提取字符串中最后一个下划线之后的数字

获取字符串中的最后一个子字符串?

通过指定子字符串的第一个和最后一个来提取字符串中的子字符串

获取字符串中的最后一个数字块

使用javascript正则表达式获取字符串中的最后一个数字

仅使用 r 中的最后一个分隔符拆分字符串

如何提取字符串中的最后一个元素

仅当最后一个“-”之后的字符串是数字时,如何获取最后一个“-”之前的字符?

将字符串中的最后一个数字设置为负数

SQL语句提取字符串中的最后一个单词?

在 R 中提取字符串中的最后一个单词 - 面临错误

获取字符串的左侧部分,直到字符串中的最后一个数字

仅提取字符串中最后一个数字之后的空格后的字符