在不改变 table class 的情况下对意外事件 table 进行排序
Sort a contingency table without changing table class
我想重新排序 cont.table
的因子
test.a <- c(rep(1,20),rep(0,40))
test.b <- c(rep(1,25),rep(0,35))
cont.table <- addmargins(table(test.a, test.b))
test.b
test.a 0 1 Sum
0 35 5 40
1 0 20 20
Sum 35 25 60
我希望能够对因子0和1进行排序,我想要的结果是这样的
1 0 Sum
1 20 0 20
0 5 35 40
Sum 25 35 60
我是这样做的,但是我丢失了 class Table,这是我需要的
> tbl <- as.data.frame.matrix(addmargins(table(test.a, test.b)))
> tbl2 <- cbind(tbl[2],tbl[1],tbl[3])
> tblfinal <- rbind(tbl2[2,],tbl2[1,],tbl2[3,])
> as.table(tblfinal)
Error in as.table.default(tblfinal) : cannot coerce to a table
有什么办法吗?越简单越好
您可以按 col/row 名称重新排序:
cust_name <- c('1', '0', 'Sum')
cont.table[cust_name, cust_name]
test.b
test.a 1 0 Sum
1 20 0 20
0 5 35 40
Sum 25 35 60
使您的 test.x 对象因子具有定义的顺序,然后表格等将被适当排序。例如:
test.a <- factor(test.a,levels=c(1,0))
test.b <- factor(test.b,levels=c(1,0))
addmargins(table(test.a,test.b))
# test.b
#test.a 1 0 Sum
# 1 20 0 20
# 0 5 35 40
# Sum 25 35 60
我想重新排序 cont.table
的因子test.a <- c(rep(1,20),rep(0,40))
test.b <- c(rep(1,25),rep(0,35))
cont.table <- addmargins(table(test.a, test.b))
test.b
test.a 0 1 Sum
0 35 5 40
1 0 20 20
Sum 35 25 60
我希望能够对因子0和1进行排序,我想要的结果是这样的
1 0 Sum
1 20 0 20
0 5 35 40
Sum 25 35 60
我是这样做的,但是我丢失了 class Table,这是我需要的
> tbl <- as.data.frame.matrix(addmargins(table(test.a, test.b)))
> tbl2 <- cbind(tbl[2],tbl[1],tbl[3])
> tblfinal <- rbind(tbl2[2,],tbl2[1,],tbl2[3,])
> as.table(tblfinal)
Error in as.table.default(tblfinal) : cannot coerce to a table
有什么办法吗?越简单越好
您可以按 col/row 名称重新排序:
cust_name <- c('1', '0', 'Sum')
cont.table[cust_name, cust_name]
test.b
test.a 1 0 Sum
1 20 0 20
0 5 35 40
Sum 25 35 60
使您的 test.x 对象因子具有定义的顺序,然后表格等将被适当排序。例如:
test.a <- factor(test.a,levels=c(1,0))
test.b <- factor(test.b,levels=c(1,0))
addmargins(table(test.a,test.b))
# test.b
#test.a 1 0 Sum
# 1 20 0 20
# 0 5 35 40
# Sum 25 35 60