在 p 值之后捕获数字

Capturing number after p value

我在 R 中有这样的字符串;

data_have="0.50 (0.11-1.65, p=0.214)"

data_want=0.214

我试过了,但这不是我需要的:

gsub(".*\b(*p)", "\1", varname$ratio')

有人知道如何 select 这个数字吗? ) 也必须是字符串的结尾。

您可以使用 sub :

sub(".*p=(\d+\.\d+)\)$", "\1", data_have)
#[1] "0.214"

也许可以添加 as.numeric 将以上内容转换为数字。

这将获取字符串末尾 p=) 之间的所有内容:p=(.*)\)$

我们可以使用gsub

gsub(".*p=|\)", "", data_have)
#[1] "0.214"