R 在管道中使用提取:选择数字并将其放入单独的变量中

R 在管道中使用提取:选择数字并将其放入单独的变量中,r,tidyr,R,Tidyr,我有一个数据框。一个变量包含类似于c的值('Test11','Test12','Test21','Test22')。 我想从中得到两个新的变量。 Var1包括第一个数字。 Var2包括第二个数字 比如: 数据测试%>% 提取(阶段,c('Test','Order'),regex=“([[:digit:]])-([[:digit:]])) 我知道这是个简单的问题。但我对正则表达式不是很熟悉。所有这些。/:[等等…您可以尝试在此处使用sub作为基本R选项: x <- c("Test11", "

我有一个数据框。一个变量包含类似于c的值('Test11','Test12','Test21','Test22')。 我想从中得到两个新的变量。 Var1包括第一个数字。 Var2包括第二个数字

比如: 数据测试%>% 提取(阶段,c('Test','Order'),regex=“([[:digit:]])-([[:digit:]]))


我知道这是个简单的问题。但我对正则表达式不是很熟悉。所有这些。/:[等等…

您可以尝试在此处使用
sub
作为基本R选项:

x <- c("Test11", "Test12", "Test21", "Test22")
out <- sub("^\\D+", "", x)
out

[1] "11" "12" "21" "22"

x
data\u Test$Var1是单词
Test
实际上是
Test
或者只是任何字符串?它总是“Test”。好的。我只是编辑了我的答案来处理任何字符串。但是我的初始答案(使用
Test
而不是
[:alpha:]*
)足够好,然后我只是编辑了backdata\u Test%mutate(Test=gsub(“Test(\\d)\\d”,“\\1”,阶段))
data_Test$Var1 <- gsub("Test(\\d)\\d", "\\1", data_Test$Phase)

data_Test$Var2 <- gsub("Test\\d(\\d)", "\\1", data_Test$Phase)