首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从置信区间字符串中提取数值格式的下限和上限?

如何从置信区间字符串中提取数值格式的下限和上限?
EN

Stack Overflow用户
提问于 2019-05-27 12:31:16
回答 6查看 1.1K关注 0票数 12

假设一个向量包含如下的置信区间

代码语言:javascript
复制
confint <- c("[0.741 ; 2.233]", "[263.917 ; 402.154]", "[12.788 ; 17.975]", "[0.680 ; 2.450]", "[0.650 ; 1.827]", "[0.719 ; 2.190]")

我想要两个新的向量,一个包括数值格式的下限,如

代码语言:javascript
复制
lower <- c(0.741, 263.917, 12.788, 0.680, 0.650 , 0.719)

并包括数值格式的上限,如

代码语言:javascript
复制
upper <- c(2.233, 402.154, 17.975, 2.450, 1.827, 2.190)
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2019-05-27 12:41:31

基R解

代码语言:javascript
复制
lower =  as.numeric(sub(".*?(\\d+\\.\\d+).*", "\\1", confint))
upper =  as.numeric(sub(".*\\b(\\d+\\.\\d+).*", "\\1", confint))

lower
[1]   0.741 263.917  12.788   0.680   0.650   0.719
upper
[1] 2.233 402.154  17.975   2.450   1.827   2.190
票数 12
EN

Stack Overflow用户

发布于 2019-05-27 12:52:19

代码语言:javascript
复制
mypattern <- '\\[(\\d+\\.\\d+) ; (\\d+\\.\\d+)\\]'
as.numeric(gsub(mypattern, '\\1', confint))
as.numeric(gsub(mypattern, '\\2', confint))
票数 3
EN

Stack Overflow用户

发布于 2019-05-27 12:49:23

另一种base R可能是:

代码语言:javascript
复制
sapply(strsplit(confint, " ; ", fixed = TRUE), function(x) gsub("[^0-9.-]+", "\\1", x) [1])
sapply(strsplit(confint, " ; ", fixed = TRUE), function(x) gsub("[^0-9.-]+", "\\1", x) [2])

[1] "0.741"   "263.917" "12.788"  "0.680"   "0.650"   "0.719"  
[1] "2.233"   "402.154" "17.975"  "2.450"   "1.827"   "2.190" 

如果您需要它作为一个数字向量:

代码语言:javascript
复制
sapply(strsplit(confint, " ; ", fixed = TRUE), function(x) as.numeric(gsub("[^0-9.-]+", "\\1", x)) [1])
sapply(strsplit(confint, " ; ", fixed = TRUE), function(x) as.numeric(gsub("[^0-9.-]+", "\\1", x)) [2])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56326130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档