【发布时间】:2020-08-22 03:51:20
【问题描述】:
我有以下数据框:
df <- data.frame(string=c('abcde', 'cde'))
我想在每个字符串中找到“de”的end位置,我可以这样确定:
df %>%
rowwise() %>%
mutate(pos=str_locate(string = string, pattern = "de")[2])
## string pos
## abcde 5
## cde 3
这是预期的输出但是我不想使用rowwise(),因为它对于大数据帧来说非常慢。
所以我尝试将我的函数矢量化并删除rowwise() 命令:
Vstr_locate <- Vectorize(str_locate)
df %>%
#rowwise() %>%
mutate(pos=Vstr_locate(string = string, pattern = "de")[2])
但这没有用:
## string pos
## abcde 5
## cde 5
问题:
- 为什么我的矢量化函数不起作用?
- 如何在不使用
rowwise()的情况下获得预期的输出?
【问题讨论】: