在R中提取第n个字符直到字符串结束
我正在尝试使用R从字符串中提取第n个字符。以下是我的数据:在R中提取第n个字符直到字符串结束,r,R,我正在尝试使用R从字符串中提取第n个字符。以下是我的数据: StringField example_string1 example_string2 example_string3 example_string4 example_string5 example_string6 example_string7 example_string8 example_string9 example_string10 example_string11 example_string12 我只想提取示例_字符串后
StringField
example_string1
example_string2
example_string3
example_string4
example_string5
example_string6
example_string7
example_string8
example_string9
example_string10
example_string11
example_string12
我只想提取示例_字符串后面的数字,因此结果将是:
1
2
3
4
5
6
7
8
9
10
11
12
我尝试了以下几点:
df$unique_number <- substr(df$stringField, 15:)
df$unique\u number这里有一个使用sub
的简单选项。我们可以捕获输入中的最后数字,然后仅替换为捕获的数量
x <- "example_string10"
num <- sub("^.*?(\\d+)$", "\\1", x)
num
[1] "10"
x这里有一个使用sub
的简单选项。我们可以捕获输入中的最后数字,然后仅替换为捕获的数量
x <- "example_string10"
num <- sub("^.*?(\\d+)$", "\\1", x)
num
[1] "10"
x如果您只想从字符串中提取数字,这可以是一个解决方案:
library(stringr)
as.numeric(str_extract(df$stringField,"\\d+"))
如果您只想从字符串中提取数字,这可以是一个解决方案:
library(stringr)
as.numeric(str_extract(df$stringField,"\\d+"))
x[1]“10”
由(v0.3.0)于2020-02-06创建
由(v0.3.0)创建于2020-02-06用空字符串替换每个非数字(\D
),并转换为数字:
transform(df, unique_number = as.numeric(gsub("\\D", "", StringField)))
注
我们将此作为输入:
df <- data.frame(StringField = c("example_string1", "example_string2",
"example_string3"), stringsAsFactors = FALSE)
df用空字符串替换每个非数字(\D
),并转换为数字:
transform(df, unique_number = as.numeric(gsub("\\D", "", StringField)))
注
我们将此作为输入:
df <- data.frame(StringField = c("example_string1", "example_string2",
"example_string3"), stringsAsFactors = FALSE)
df要最低限度地修改代码,只需将substr
替换为substring
,即子字符串(df$stringField,15)
。要最低限度地修改代码,只需将substr
替换为substring
,即子字符串(df$stringField,15)
substr
和substring
可以应用于向量。它不需要使用map
@DarrenTsai,谢谢你的提示。巧合的是,我在RStudio上读了purrr初级读物,正在学习函数式编程,它似乎很适合。但是substr
对我来说是最简单的解决方案。但你是对的。我将删除帖子的第二部分。substr
和substring
可以应用于向量。它不需要使用map
@DarrenTsai,谢谢你的提示。巧合的是,我在RStudio上读了purrr初级读物,正在学习函数式编程,它似乎很适合。但是substr
对我来说是最简单的解决方案。但你是对的。我将删除帖子的第二部分。嘿~str_extract
可以应用于向量,因此它不需要使用sapply
,即作为.numeric(str_extract(df$stringField,\\d+)
,对吗?是的,你是对的。我不知道为什么我添加了sapply
。编辑了这篇文章。嘿~str_extract
可以应用于向量,因此它不需要使用sapply
,即作为.numeric(str_extract(df$stringField,“\\d+”)
,对吗?是的,你是对的。我不知道为什么我添加了sapply
。编辑了这篇文章。