仅提取逗号之间的数字
Extract only number between commas
我的代码中有一个这样的返回字符串:(<C1>, 4.297, %)
我正在尝试使用 gsub 命令从该字符串中仅提取值 4.297:
Fat<-gsub("\D", "", stringV)
然而,这不仅提取了 4.297,还提取了 C1 中的数字“1”。
有没有办法从这个字符串中只提取4.297,请你帮忙。
谢谢
这个怎么样?
# Your sample character string
ss <- "(<C1>, 4.297, %)";
gsub(".+,\s*(\d+\.\d+),.+", "\1", ss)
#[1] "4.297"
或
gsub(".+,\s*([0-9\.]+),.+", "\1", ss)
如有必要,使用 as.numeric
转换为数字。
另一种选择是 str_extract
将一个或多个数字元素与 .
匹配,并且前面是单词边界,后面是单词边界(\b
)
library(stringr)
as.numeric(str_extract(stringV, "\b[0-9.]+\b"))
#[1] 4.297
如果有多个号码,使用str_extract_all
数据
stringV <- "(<C1>, 4.297, %)"
另一种方法是将向量视为逗号分隔变量,并使用 read.csv
df <- read.csv(text = stringV, colClasses = c("character", "numeric", "character"), header = F)
V1 V2 V3
1 (<C1> 4.297 %)
此方法依赖于 'numeric' 在向量中的 'second' 位置。
您可以使用 as.numeric
将无数字字符串转换为 NA
。
ss <- as.numeric(unlist(strsplit(stringV, ',')))
ss[!is.na(ss)]
#[1] 4.297
我的代码中有一个这样的返回字符串:(<C1>, 4.297, %)
我正在尝试使用 gsub 命令从该字符串中仅提取值 4.297:
Fat<-gsub("\D", "", stringV)
然而,这不仅提取了 4.297,还提取了 C1 中的数字“1”。 有没有办法从这个字符串中只提取4.297,请你帮忙。
谢谢
这个怎么样?
# Your sample character string
ss <- "(<C1>, 4.297, %)";
gsub(".+,\s*(\d+\.\d+),.+", "\1", ss)
#[1] "4.297"
或
gsub(".+,\s*([0-9\.]+),.+", "\1", ss)
如有必要,使用 as.numeric
转换为数字。
另一种选择是 str_extract
将一个或多个数字元素与 .
匹配,并且前面是单词边界,后面是单词边界(\b
)
library(stringr)
as.numeric(str_extract(stringV, "\b[0-9.]+\b"))
#[1] 4.297
如果有多个号码,使用str_extract_all
数据
stringV <- "(<C1>, 4.297, %)"
另一种方法是将向量视为逗号分隔变量,并使用 read.csv
df <- read.csv(text = stringV, colClasses = c("character", "numeric", "character"), header = F)
V1 V2 V3
1 (<C1> 4.297 %)
此方法依赖于 'numeric' 在向量中的 'second' 位置。
您可以使用 as.numeric
将无数字字符串转换为 NA
。
ss <- as.numeric(unlist(strsplit(stringV, ',')))
ss[!is.na(ss)]
#[1] 4.297