获取特定的字符串模式
Getting a specific string pattern
我有一个包含字符串列的数据库,该数据库如下所示:
structure(list(variables = c("data$Ageee[data$Beneficiary == 1] and data$Age[data$Beneficiary == 0]",
"data$var[data$Beneficiary == 1] and data$Age[data$Beneficiary == 0]",
"data$variable_test[data$Beneficiary == 1] and data$Age[data$Beneficiary == 0]"
), values = c(0, 0, 0)), class = "data.frame", row.names = c(NA,
-3L))
但是,考虑到第一个 $
之后和第一个 [
之前的文本,我想获得一个新专栏,所以我得到:
structure(list(variables = c("Ageee", "var", "variable_test"
), values = c(0, 0, 0)), class = "data.frame", row.names = c(NA,
-3L))
感谢任何帮助。
我们可以使用sub
来捕获$
之后的单词((\w+
) - $
是正则表达式中表示字符串结尾的元字符,所以它被转义了 (\
)
df1$variables <- sub("\w+\$(\w+).*", "\1", df1$variables)
-输出
> df1
variables values
1 Ageee 0
2 var 0
3 variable_test 0
我们可以将 stringr
与 str_extract
和 str_remove
一起使用,并通过积极的后视来确定所需的模式紧随第一个 $
.
library(dplyr)
library(stringr)
df %>% mutate(variables = str_extract(variables, "(<?\$)\w+")%>%
str_remove('\$'))
variables values
1 Ageee 0
2 var 0
3 variable_test 0
我有一个包含字符串列的数据库,该数据库如下所示:
structure(list(variables = c("data$Ageee[data$Beneficiary == 1] and data$Age[data$Beneficiary == 0]",
"data$var[data$Beneficiary == 1] and data$Age[data$Beneficiary == 0]",
"data$variable_test[data$Beneficiary == 1] and data$Age[data$Beneficiary == 0]"
), values = c(0, 0, 0)), class = "data.frame", row.names = c(NA,
-3L))
但是,考虑到第一个 $
之后和第一个 [
之前的文本,我想获得一个新专栏,所以我得到:
structure(list(variables = c("Ageee", "var", "variable_test"
), values = c(0, 0, 0)), class = "data.frame", row.names = c(NA,
-3L))
感谢任何帮助。
我们可以使用sub
来捕获$
之后的单词((\w+
) - $
是正则表达式中表示字符串结尾的元字符,所以它被转义了 (\
)
df1$variables <- sub("\w+\$(\w+).*", "\1", df1$variables)
-输出
> df1
variables values
1 Ageee 0
2 var 0
3 variable_test 0
我们可以将 stringr
与 str_extract
和 str_remove
一起使用,并通过积极的后视来确定所需的模式紧随第一个 $
.
library(dplyr)
library(stringr)
df %>% mutate(variables = str_extract(variables, "(<?\$)\w+")%>%
str_remove('\$'))
variables values
1 Ageee 0
2 var 0
3 variable_test 0