首页 > 解决方案 > 删除列名中特殊字符之后的所有字符

问题描述

我有一个已导入 R 的数据集,但需要删除“(”之后的列名中的所有内容。我尝试了string.split(), sub(), and grepl()函数,但没有成功。任何和所有帮助将不胜感激!

我希望以下内容变为:

水果 => 水果

蔬菜(少量)=> 蔬菜

面包屑 => 面包屑

奶酪(切达干酪)=> 奶酪

酸奶(原味%)=>酸奶

标签: rspecial-charactersmultiple-columnsrenamecolumnname

解决方案


使用基础 R:

items <- c('Fruit', 'Vegetables (Few)', 'Bread Crumbs', 'Cheese (Cheddar)', 'Yogurt (Plain%)')
items_simplified <- trimws(gsub('\\(.*', '', items))

> items_simplified
[1] "Fruit"        "Vegetables"   "Bread Crumbs" "Cheese"       "Yogurt"   

您也可以stringrtidyverse包中使用:

library(stringr)
items_stringr <- str_trim(str_extract(items, '[^(]*'))

> items_stringr
[1] "Fruit"        "Vegetables"   "Bread Crumbs" "Cheese"       "Yogurt"      

trimwsstr_trim修剪项目的尾随和前导空格。


推荐阅读