如何计算有条件的Intervarls的病例?小声一点

劳尔·瓦伦丁·丰塞卡

因此,我希望能表达我的问题,这里有一个我组成的以下示例:

result <- c(1,1,1,1,1,1,1,1,1,1)
con1 <- c(1,2,2,2,1,1,2,2,2,2)
con2 <- c(2,1,2,2,1,1,2,2,2,1)
con3 <- c(2,2,1,1,1,2,2,2,2,1)
con4 <- c(2,1,2,2,1,1,2,1,1,2)
con5 <- c(1,2,2,2,1,2,2,2,2,1)
a <- tibble(Result=result,Con1=con1,Con2=con2,Con3=con3,Con4=con4,Con5=con5)

上面的代码给了我以下小标题,其中每一行都是一个病人:

> a
# A tibble: 10 x 6
   Result  Con1  Con2  Con3  Con4  Con5
    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
 1      1     1     2     2     2     1
 2      1     2     1     2     1     2
 3      1     2     2     1     2     2
 4      1     2     2     1     2     2
 5      1     1     1     1     1     1
 6      1     1     1     2     1     2
 7      1     2     2     2     2     2
 8      1     2     2     2     1     2
 9      1     2     2     2     1     2
10      1     2     1     1     2     1

结果是市长病阳性的病例(这就是为什么全为1的情况),而Con_i对患者的肯定或否问题是1 =是和2 =否,我想获得对:0个问题,1个问题,2-3个问题和4个或更多问题。

到目前为止,我已经尝试这样做:

a1 <-a %>% add_column(X=1) 
a1$X <- case_when(a$Con1==2 & a$Con2==2 & a$Con3==2 & a$Con4==2 & a$Con5==2 ~ 0,
                    a$Con1==1 & a$Con2==2 & a$Con3==2 & a$Con4==2 & a$Con5==2 |
                    a$Con1==2 & a$Con2==1 & a$Con3==2 & a$Con4==2 & a$Con5==2|
                    a$Con1==2 & a$Con2==2 & a$Con3==1 & a$Con4==2 & a$Con5==2|
                    a$Con1==2 & a$Con2==2 & a$Con3==2 & a$Con4==1 & a$Con5==2|
                    a$Con1==2 & a$Con2==2 & a$Con3==2 & a$Con4==2 & a$Con5==1 ~ 1)
table <- a1 %>% group_by(X) %>% count(X,Result)
table
> table
# A tibble: 3 x 3
# Groups:   X [3]
      X Result     n
  <dbl>  <dbl> <int>
1     0      1     1
2     1      1     4
3    NA      1     5

但是我知道这不是最有效的方法,再加上我需要针对2-3种情况和4种以上情况进行所有组合,并且无法扩展,因此我正在寻找一种更简单的方法来进行扩展和扩展,希望我能得到您的帮助并提前致谢!

r2evans

也许最简单:

table(rowSums(a[,-1] < 2))
# 0 1 2 3 5     <--- counts of "1" in each row
# 1 4 2 2 1     <--- number of patients with that count

由于您需要将2-3和4+分组

table(cut(rowSums(a[,-1] < 2), c(0, 1, 2, 4, Inf), include.lowest = TRUE))
#   [0,1]   (1,2]   (2,4] (4,Inf] 
#       5       2       2       1 

当逻辑使用时< 2,检查== 1L或相似性相等就很容易


逐步跟踪:

a[,-1] == 1
#        Con1  Con2  Con3  Con4  Con5
#  [1,]  TRUE FALSE FALSE FALSE  TRUE
#  [2,] FALSE  TRUE FALSE  TRUE FALSE
#  [3,] FALSE FALSE  TRUE FALSE FALSE
#  [4,] FALSE FALSE  TRUE FALSE FALSE
#  [5,]  TRUE  TRUE  TRUE  TRUE  TRUE
#  [6,]  TRUE  TRUE FALSE  TRUE FALSE
#  [7,] FALSE FALSE FALSE FALSE FALSE
#  [8,] FALSE FALSE FALSE  TRUE FALSE
#  [9,] FALSE FALSE FALSE  TRUE FALSE
# [10,] FALSE  TRUE  TRUE FALSE  TRUE
rowSums(a[,-1] == 1)
#  [1] 2 2 1 1 5 3 0 1 1 3

最后是每个“患者”(行)的1的数目。

由此,我计算出01,4 1s,2 2s加2 3s,0 4s加1 5这应该总共是5、2、2、1 ...,所以@andrew_reece是正确的,让我们使用cut(...,right=FALSE)

table(cut(rowSums(a[,-1] < 2), c(0, 1, 2, 4, Inf), right = FALSE))
#   [0,1)   [1,2)   [2,4) [4,Inf) 
#       1       4       4       1 

我本应该早点[0,1](上一个答案)表示0和1是封闭式的,这意味着0和1都包含在同一个bin中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何计算有条件的均值?

来自分类Dev

我如何有条件地计算本地反应的状态之一?

来自分类Dev

有条件如何计算每月的ID金额?

来自分类Dev

有条件显示计算字段

来自分类Dev

如何有条件导入模块?

来自分类Dev

如何有条件地渲染

来自分类Dev

如何执行有条件的搜索

来自分类Dev

有条件的

来自分类Dev

有条件的

来自分类Dev

有条件填充颜色的格子分组点图

来自分类Dev

ggplot线或点有条件地绘制

来自分类Dev

如何计算有条件的连续熊猫数据框行之间的日差

来自分类Dev

如何使用带有条件的sql计算某些不同的记录

来自分类Dev

如何计算 R 中矩阵中所有条件对的相对风险?

来自分类Dev

在data.table中分组后如何计算有条件的行

来自分类Dev

如何在 Pandas 中使用 .assign 方法有条件地分配计算列?

来自分类Dev

可能有条件计算(IO()

来自分类Dev

有条件的R中的滚动计算

来自分类Dev

计算带有条件的最新项的SQL年龄

来自分类Dev

计算有条件的时期的人数

来自分类Dev

有条件的计算列中的最大值

来自分类Dev

选择带有条件的SQL以计算不同的值

来自分类Dev

有条件地计算员工-经理关系

来自分类Dev

在计算中有条件地替换变量

来自分类Dev

有条件地计算列中出现的次数

来自分类Dev

如何在有条件的js中有条件地应用标题

来自分类Dev

如何在有条件的组件上有条件地添加道具?

来自分类Dev

如何根据上一行有条件地插入一行?

来自分类Dev

如何使用带有条件的另一列的值更新一列?