Dav*_*ves 2 r gsub dplyr rowwise
我正在尝试删除pattern使用and 。var_1mutate()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)
)
Run Code Online (Sandbox Code Playgroud)
期望的结果:
# 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
Run Code Online (Sandbox Code Playgroud)
您可以使用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
Run Code Online (Sandbox Code Playgroud)
str_replace这与使用替换 as相同""。
test %>% mutate(result = str_replace(var_1, pattern, ''))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2309 次 |
| 最近记录: |