在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 我只想提取示例_字符串后

我正在尝试使用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
我只想提取示例_字符串后面的数字,因此结果将是:

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
。编辑了这篇文章。