删除数据框列 (R) 中的部分字符串

标签 r

我有一个带有列(Col2)的数据框(df),如下所示:

Col1                 Col2                   Col3
  1   C607989_booboobear_Nation               A
  2   C607989_booboobear_Nation               B
  3   C607989_booboobear_Nation               C
  4   C607989_booboobear_Nation               D
  5   C607989_booboobear_Nation               E
  6   C607989_booboobear_Nation               F

我只想提取 Col2 中的数字
Col1              Col2                    Col3
  1              607989                     A
  2              607989                     B
  3              607989                     C
  4              607989                     D
  5              607989                     E
  6              607989                     F

我试过这样的事情:
gsub("^.*?_","_",df$Col2)

但它不起作用。

最佳答案

如果您的字符串不太花哨/复杂,则可能最容易执行以下操作:

gsub("C([0-9]+)_.*", "\\1", df$Col2)
# [1] "607989" "607989" "607989" "607989" "607989" "607989"

以“C”开头,然后是数字,然后是下划线,然后是其他任何内容。使用 () 捕获数字,并将替换设置为该捕获组 ( \\1 )。

关于删除数据框列 (R) 中的部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25277117/

相关文章:

r - knitr 解析额外的逐字文档类

r - 将数字向量转换为标准单位向量的函数

r - 这是 R 3.5 中的错误吗?

r - 汇总和排序数据框

r - 如何使用 ggplot 在 R 中的多面堆叠条形图中使用不同的 geom_text() 标签?

r - `R` 中是否有 "output of the last command"的表达式?

r - Rmarkdown PDF 中数据表屏幕截图中的空白

r - 在 Windows 上安装 rjags 包

python - Rpy2 错误 wac-a-mole : R_USER not defined

R传播错误: Duplicate identifiers for rows