首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >积极事件与消极事件的计数比较

积极事件与消极事件的计数比较
EN

Stack Overflow用户
提问于 2022-01-30 14:54:41
回答 1查看 52关注 0票数 0

我有正面、负面和中性事件计数的数据。例如:8(正)、5(负)和1(中性)。

我想找一些方法来计算8/5的置信区间。

另一个例子是:6 (正)、0(负)和2(中性)。

以下是数据的一个示例:

EN

回答 1

Stack Overflow用户

发布于 2022-01-30 16:22:30

首先应该使用table(sign(vec)),尽管它有一个缺陷:

代码语言:javascript
复制
set.seed(42)
vec <- runif(30, -1, 1)
vec
#  [1]  0.82961209  0.87415083 -0.42772093  0.66089525  0.28349104  0.03819190
#  [7]  0.47317663 -0.73066681  0.31398458  0.41012957 -0.08451645  0.43822450
# [13]  0.86934449 -0.48914235 -0.07541435  0.88002905  0.95645286 -0.76502528
# [19] -0.05000584  0.12066549  0.80806277 -0.72257966  0.97778346  0.89333647
# [25] -0.83512488  0.02842357 -0.21959307  0.81147626 -0.10606074  0.67200852
table(sign(vec))
# -1  1 
# 11 19 

这个缺陷在table中很常见:如果它没有看到它,它就不会报告它的0 (而且它不是table中的一个缺陷,只是我们对它的使用和期望)。我们可以毫不费力地解决这个问题:

代码语言:javascript
复制
table(c(sign(vec), -1:1)) - 1L
# -1  0  1 
# 11  0 19 

-1:1将每个预期值中的一个附加到来自sign的结果中,- 1L随后删除我们引入的计数。

可以很容易地假设您总是拥有至少一个-101 (尽管示例数据清楚地显示出有一个0) .我建议它很少是完美的,并且添加这种故障安全只会增加很少的开销,同时提供完整性的保证。

同样,如果您怀疑在任何时候都可能看到NA,那么可以添加useNA="always",但是- 1L会出现问题。为此,我们需要使用相同的技术在插入的数据中包括NA

代码语言:javascript
复制
table(c(sign(vec), c(-1:1, NA)), useNA='always') - 1L
#   -1    0    1 <NA> 
#   11    0   19    0 

table(c(sign(c(NA, vec)), c(-1:1, NA)), useNA='always') - 1L
#   -1    0    1 <NA> 
#   11    0   19    1 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70915808

复制
相关文章

相似问题

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