假设我在tbl中有一个“选项代码”列,数据是这样的:
m1803-C-2550
m1807-P-3050
我想在新变量“期权类型”“-”和第二个“-”之后的2550/3050之间抓取C / P作为新变量“行使价”。
如何使用
tidyverse
进行编码?现在,我可以通过解决第一个问题
tbl %>% mutate(option_type = str_sub(option_code, str_locate(option_code, "[CP]"))
但是我无法解决我的第二个问题,否则你们可能有一种优雅的方式来解决我的第一个问题。
最佳答案
试试这个:
library(dplyr)
library(stringr)
df %>%
mutate(option_type = str_extract(option_code, "(?<=-)[CP]"),
strike_price = as.numeric(str_extract(option_code, "(?<=-)\\d+")))
#> option_code option_type strike_price
#> 1 m1803-C-2550 C 2550
#> 2 m1807-P-3050 P 3050
数据df <- data.frame(option_code = c("m1803-C-2550", "m1807-P-3050"))
由reprex package(v0.3.0)创建于2020-05-23关于r - 如何在“-”之后抓取某些字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61971567/