如何在R中移除数据框列中的数值,仅保留字符串内容?
移除数据框
x列的数值部分,仅保留字符串内容(R实现) 当然可以用R实现这个需求,下面是两种实用的方法:
方法一:Base R 原生函数gsub()
借助正则表达式匹配并替换掉字符串末尾的数值部分,假设你的数据框名为df,代码如下:
df$x <- gsub("[0-9.]+$", "", df$x)
正则表达式[0-9.]+$的作用是匹配字符串末尾的所有数字和小数点,用空字符串替换后就只保留前面的纯文本内容。
方法二:stringr包的str_remove()函数
如果你习惯使用tidyverse生态的工具,可以用更简洁的语法:
# 首次使用需安装包 install.packages("stringr") library(stringr) df$x <- str_remove(df$x, "[0-9.]+$")
这个方法和base R的效果完全一致,只是写法更直观。
示例验证
假设df$x的原始值是"Benign_freq0.001"或"Recessive0.002",执行上述代码后,会分别得到"Benign_freq"和"Recessive",完全符合你的要求。
内容的提问来源于stack exchange,提问作者britney
相关产品推荐
相关产品推荐

