r - R mutate & gsub 其中模式基于列
问题描述
我正在尝试pattern
删除var_1
使用mutate()
and gsub()
。
由于gsub()
只需要一个字符串,我必须rowwise()
在mutate()
. 否则它将只使用pattern
列中的第一条记录。
我想知道是否有任何其他方法可以在不使用的情况下达到相同的结果,rowwise()
因为它会大大减慢过程。
test <- data.frame(
var_1 = c('1AB', '2AB', '3C')
,pattern = c('AB','A','C')
)
test %>%
dplyr::rowwise() %>%
dplyr::mutate( result = sub(pattern, '', var_1)
)
期望的结果:
# A tibble: 3 x 4
# Rowwise:
var_1 var_2 pattern result
<chr> <lgl> <chr> <chr>
1 1AB FALSE AB 1
2 2AB TRUE A 2B
3 3C FALSE C 3
解决方案
您可以使用stringr
矢量化的选项。
使用str_remove
:
library(dplyr)
library(stringr)
test %>% mutate(result = str_remove(var_1, pattern))
# var_1 pattern result
#1 1AB AB 1
#2 2AB A 2B
#3 3C C 3
这与使用str_replace
with replacement as相同""
。
test %>% mutate(result = str_replace(var_1, pattern, ''))
推荐阅读
- powershell - PowerShell 脚本中的 API 响应代码无效
- swift - Swiftui - 显示解码数据以查看时出错
- php - 命令
- 数组中的 id 元素
- pyspark - java.util.concurrent.ExecutionException:com.microsoft.azure.eventhubs.EventHubException 错误,同时从 Databricks 中的 EventHub 读取事件
- encryption - aws sdk c++ 客户端加密支持?
- python-3.x - 有没有办法添加最小化按钮,使其在框架中最小化并关闭按钮到 tkinter.ttk.Notebook 中的选项卡?
- javascript - 有没有一种有效的方法可以用 NestJS 反转保护值?
- xcode - 从 xcode 登录到 azure devops 帐户
- android - 如何等待挂起函数中的 withContext 完成?
- c++ - 为什么任何 OpenCv (C++) 减法运算都会导致全黑图像?