如何在R语言中修改数据框列值,仅保留其中的数字?
解决方案:提取subject列中的数字并转换为数值型
你可以结合dplyr的mutate()和stringr的字符串处理函数来实现需求,以下是两种常用方法:
方法1:提取所有连续数字字符
这种方法更通用,即使前缀格式有变化(比如不是固定的sub-),只要数字是连续的就能提取:
# 先加载所需包(未安装的话先运行 install.packages(c("dplyr", "stringr"))) library(dplyr) library(stringr) # 原始数据 example <- data.frame( subject = c('sub-137', 'sub-138', 'sub-139') ) # 处理数据 example_solution <- example %>% mutate(subject = as.numeric(str_extract(subject, "\\d+")))
方法2:移除固定前缀
如果前缀固定为sub-,可以直接移除前缀后转换为数值:
example_solution <- example %>% mutate(subject = as.numeric(str_remove(subject, "sub-")))
最终输出
运行上述代码后,example_solution的结构如下:
> example_solution subject 1 137 2 138 3 139
内容的提问来源于stack exchange,提问作者jo_
相关产品推荐
相关产品推荐

