如何计算表格在R中的升力值?

问题描述

library(readr)
data1<-read_csv(".../file1")
data2<-read_csv(".../file2")
table2<-table(data1$`_SEGMENT_`,data2$`_SEGMENT_`,data1$Subscribed)

这是我使用三个变量创建的频率table2,其中data1段为行,data2段为列,第三个维度为“ Subscribed”,其中包含'yes''no'

> table2,= no

   
       1    2    3    4    5
  1   29  674 5189 7207   88
  2    3  194 1393 2166   39
  3   18  471 2667 5719   77
  4    0    1    2   11    0
  5   18  420 2798 4715   88,= yes

   
       1    2    3    4    5
  1    0   33  262 1000    1
  2    0   10   65  322    0
  3    0   25  190 1206    2
  4    0    0    1    3    0
  5    0   26  166  943    3

如何基于table2? 5x5表和每个位置值= 'yes' /('yes'的值+ {{1的值)来创建'yes'提升值表}})

例如'no'

table_liftvalue[1,2] = 33/(33+674)

感谢您的帮助。 [1]:https://i.stack.imgur.com/1w6mj.png

解决方法

applysum,然后除以。

table2[,"yes"]/(apply(table2,1:2,sum))
#      [,1]       [,2]       [,3]      [,4]       [,5]
# [1,]    0 0.04667610 0.04806458 0.1218472 0.01123596
# [2,]    0 0.04901961 0.04458162 0.1294212 0.00000000
# [3,]    0 0.05040323 0.06650333 0.1741516 0.02531646
# [4,]  NaN 0.00000000 0.33333333 0.2142857        NaN
# [5,]    0 0.05829596 0.05600540 0.1666667 0.03296703

数据:

table2 <- structure(c(29L,3L,18L,0L,674L,194L,471L,1L,420L,5189L,1393L,2667L,2L,2798L,7207L,2166L,5719L,11L,4715L,88L,39L,77L,33L,10L,25L,26L,262L,65L,190L,166L,1000L,322L,1206L,943L,3L),.Dim = c(5L,5L,2L),.Dimnames = list(NULL,NULL,c("no","yes")))