如何在函数中用str_remove移除DataFrame列中的括号内容
解决方案:移除Food列中的括号标记内容
要移除Food列里括号中的(N)和(OA)内容,可使用stringr包的str_remove_all()函数结合正则表达式实现,以下是完整处理代码:
步骤1:加载必要的R包
library(tibble) library(dplyr) library(stringr)
步骤2:处理数据框
先修正原代码的语法错误(as.tibble后需使用圆括号而非大括号),再添加移除标记的逻辑:
dataframe <- as.tibble(dataframe) %>% arrange(Number) %>% # 匹配并移除Food列中所有带空格前缀的(N)或(OA) mutate(Food = str_remove_all(Food, "\\s*\\((N|OA)\\)"))
正则表达式说明
\\s*:匹配0个或多个空格,处理括号前可能存在的空格\\(:转义左括号(括号在正则中属于特殊字符,需转义才能匹配)(N|OA):匹配N或OA两种目标内容\\):转义右括号
处理后的数据示例
| Number | Food | Country |
|---|---|---|
| 1 | Pizza Hut | US |
| 2 | Hotdog | France |
| 3 | Beef | US |
| 4 | Steak | Canada |
| 5 | Pasta | Pakistan |
| 6 | Bolognese | Argentina |
| 7 | Pizza Hut | GB |
| 8 | Beef | Australia |
| 9 | Steek | India |
| 10 | Rice | Spain |
内容的提问来源于stack exchange,提问作者Henry Oufh
相关产品推荐
相关产品推荐

