Nur*_*mon 2 regex string r regex-lookarounds
R 相对较新,需要帮助应用基于正则表达式的替换。我在其中一列中有一个数据框,其中有一个数字序列(我感兴趣的值),后跟一个由各种字符组成的字符串。例子:
4623(randomcharacters)
Run Code Online (Sandbox Code Playgroud)
我需要删除初始数字后的所有内容以继续使用这些值。我的想法是使用 gsub 通过正向后视删除非数字字符。我的代码是:
sub_function <- function() {
gsub("?<=[[:digit:]].", " ", fixed = T)
}
data_frame$`x` <- data_known$`x` %>%
sapply(sub_function)
Run Code Online (Sandbox Code Playgroud)
但我随后收到错误消息:
Error in FUN(X[[i]], ...) : unused argument (X[[i]])
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
这是一个基本的R函数。
它使用sub,而不是gsub,因为只有一个替换。无需回头看,元字符^标记字符串的开头,后跟可选的减号,后跟至少一位数字。其他一切都被丢弃。
sub_function <- function(x){
sub("(^-*[[:digit:]]+).*", "\\1", x)
}
data <- data.frame(x = c("4623(randomcharacters)", "-4623(randomcharacters)"))
sub_function(data$x)
#[1] "4623" "-4623"
Run Code Online (Sandbox Code Playgroud)
通过这个简单的修改,该函数返回一个数字向量。
sub_function <- function(x){
y <- sub("(^-*[[:digit:]]+).*", "\\1", x)
as.numeric(y)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |