r - 字符串中的单独数字

gia*_*iac 1 regex r

在此示例中,分隔digitsfrom 的最有效方法是什么letters:

       V1 V2
1 p_men_1  1
2 p_men_2  0
3 p_men_3  1
4 p_wom_1  1
5 p_wom_2  1
6 p_wom_3  0
Run Code Online (Sandbox Code Playgroud)

输出中

     V1 V2 V3
1 p_men  1  1
2 p_men  2  0
3 p_men  3  1
4 p_wom  1  1
5 p_wom  2  1
6 p_wom  3  0
Run Code Online (Sandbox Code Playgroud)

我试过了

library(tidyr) 
library(dplyr)

df %>% separate(V1, c('V1', 'V2'), sep = '_')
Run Code Online (Sandbox Code Playgroud)

但由于'_',它不起作用

  df = rbind(c('p_men_1', 1), 
  c('p_men_2', 0), 
  c('p_men_3', 1), 
  c('p_wom_1', 1), 
  c('p_wom_2', 1), 
  c('p_wom_3', 0))

  df = as.data.frame(df)
Run Code Online (Sandbox Code Playgroud)

Tyl*_*ker 6

这可能有效:

df %>% 
    extract(V1, c('V1', 'V2'), regex = '(^.+)_(\\d+)')

#      V1 V2 V2
# 1 p_men  1  1
# 2 p_men  2  0
# 3 p_men  3  1
# 4 p_wom  1  1
# 5 p_wom  2  1
# 6 p_wom  3  0
Run Code Online (Sandbox Code Playgroud)