在R语言中如何提取带描述的评分单元格中的数字部分
提取评分数字的解决方案
- 直接用字符串提取工具提取开头的1-5数字,无需逐个替换描述:
- 加载
dplyr和stringr包后,用以下代码批量处理多列:
library(dplyr) library(stringr) # 处理数据框df的所有列,提取开头的评分数字 df_cleaned <- df %>% mutate(across(everything(), ~ str_extract(.x, "^[1-5]")))
- 代码说明:
str_extract(.x, "^[1-5]"):^匹配字符串开头,[1-5]精准匹配1到5的单个数字,直接提取每个单元格里的评分数字。- 若只需处理指定列,把
everything()换成列选择器,比如starts_with("rating")(匹配列名以rating开头的列),或c("col1", "col2")(指定具体列名)。
- 针对格式异常的补充处理:如果部分单元格没有短横线格式,可只处理符合「数字 - 描述」格式的单元格:
df_cleaned <- df %>% mutate(across(everything(), ~ if_else(str_detect(.x, " - "), str_extract(.x, "^[1-5]"), .x)))
内容的提问来源于stack exchange,提问作者Sophia L
相关产品推荐
相关产品推荐

