你可以用tidyr
的separate_wider_regex()
来做这个. regex的语法有点奇怪. 从本质上讲,您可以通过在向量中的正则表达式中命名字符串中的那些部分来标识这些部分. 所以,使用的正则表达式是下面的:
c("parameter_", c1="[^_]*", "_", c2=".*")
因为"parameter_"
没有命名,所以它会显示为其中一列. 任何在"parameter_"
之后直到下一个下划线之前不是下划线([^_]*
)的东西都将进入名为c1
的变量. 下面的下划线将不会保存,然后该下划线之后的所有内容都保存为c2
.
library(dplyr)
library(tidyr)
df = read.table(text = " parameter_1_day_10
parameter_1_day_3
parameter_2_last_day")
df %>%
separate_wider_regex(V1, c("parameter_", c1="[^_]*", "_", c2=".*"))
#> # A tibble: 3 × 2
#> c1 c2
#> <chr> <chr>
#> 1 1 day_10
#> 2 1 day_3
#> 3 2 last_day
创建于2024—04—03,reprex v2.0.2