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


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

这是我用三个变量创建的频率table2,数据1段为行,数据2段为列,第三维度"订阅"为'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'的值+'no'的值(

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

> table_liftvalue
1    2    3    4    5
1   . 33/(674+33)
2   .
3   .
4   .
5   .

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

使用apply作为sum,然后进行除法。

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

相关内容

  • 没有找到相关文章

最新更新