gpt4 book ai didi

R mutate & gsub 其中模式基于列

转载 作者:行者123 更新时间:2023-12-02 19:06:29 27 4
gpt4 key购买 nike

我正在尝试删除 pattern来自 var_1使用 mutate()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 替换为 "" 相同。

test %>%  mutate(result = str_replace(var_1, pattern, ''))

关于R mutate & gsub 其中模式基于列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64984580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com