在R中向多路表添加边距

在R中向多路表添加边距,r,contingency,R,Contingency,我在R中有以下代码来构建三向列联表: txt=" death_p yes no v_race d_race white white 53 414 black 11 37 black white 0 16 black 4 139" mytable = as.table(read.ftable(textConnection(txt))) mytable = addmargins(mytable, margin=c(1)) 它打印正确

我在R中有以下代码来构建三向列联表:

txt="   death_p yes no
v_race  d_race      
white   white   53  414
black   11  37
black   white   0   16
black   4   139"

mytable = as.table(read.ftable(textConnection(txt)))
mytable = addmargins(mytable, margin=c(1))
它打印正确

             death_p yes  no
v_race d_race                
white  white           53 414    
       black           11  37
black  white            0  16
       black            4 139
Sum    white           53 430
       black           15 176
我想在保留表结构的“no”列之后添加一个“percentage_yes”

                 death_p yes  no  %yes
v_race d_race                
white  white             53   414  0.11    
       black             11   37   0.00
black  white             0    16   0.11
       black             4    139  0.23
Sum    white             53   430  0.28
       black             15   176  0.79
我试过了

subset(as.data.frame(prop.table(mytable, c(1,2))), death_p=="yes", select=c("Freq"))
但是我不知道如何使用Abind(来自DescTools)将这个新列添加到表中。我不知道是否有更好的方法来实现这一点。
提前感谢您的帮助。

对于那些可能感兴趣的人,我通过定义一个函数来计算百分比,然后将其传递给addmargins来实现这一点

p_yes = function(x) x[1]/sum(x)
mytable = addmargins(mytable, margin=c(3), FUN = list(p_yes))
它给

               death_p   yes     no     %yes
v_race d_race                
white  white             53.00   414.00  0.11    
       black             11.00   37.00   0.00
black  white             0.00    16.00   0.11
       black             4.00    139.00  0.23
Sum    white             53.00   430.00  0.28
       black             15.00   176.00  0.79

您好,您显示的输出与实际输出不符,您可以编辑吗?最终结果应该是什么样的?你到底想要什么样的百分比?我怀疑先计算边际和,然后得到一些百分比是不是一个好主意…;-)我需要被判死刑的人的百分比。我通过p_yes=函数(x)x[1]/sum(x)实现了这一点;mytable=addmargins(mytable,margin=c(3),FUN=list(p_yes))