r - 删除列名中特殊字符之后的所有字符
问题描述
我有一个已导入 R 的数据集,但需要删除“(”之后的列名中的所有内容。我尝试了string.split(), sub(), and grepl()
函数,但没有成功。任何和所有帮助将不胜感激!
我希望以下内容变为:
水果 => 水果
蔬菜(少量)=> 蔬菜
面包屑 => 面包屑
奶酪(切达干酪)=> 奶酪
酸奶(原味%)=>酸奶
解决方案
使用基础 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"
您也可以stringr
从tidyverse
包中使用:
library(stringr)
items_stringr <- str_trim(str_extract(items, '[^(]*'))
> items_stringr
[1] "Fruit" "Vegetables" "Bread Crumbs" "Cheese" "Yogurt"
trimws
并str_trim
修剪项目的尾随和前导空格。
推荐阅读
- php - 缺少 PHP 环境设置以从 require 调用中读取变量
- mysql - SELECT CASE param_name END CASE INTO @var 在存储过程中使用参数分配列
- c# - 获取应用程序的第一个密钥保管库机密值时出现异常
- php - 从条件 laravel 5.7 的模型中获取数据
- python - 面网识别不正确
- linux - Kubernetes Pod 报告的内存使用量超过实际进程消耗量
- docker - Cloudfoundry:Docker 应用程序在启动时崩溃
- python - 如何使用线程在 Raspberry pi 中使用 python 播放音频
- tfs - VSTS:在构建上执行条件任务
- react-native - 使用 contentContainerStyle 滚动到 FlatList 的末尾