&引用;“合并”;表在R中逐行显示

&引用;“合并”;表在R中逐行显示,r,R,我在R中有两个(或更多)相同维度的表格 table1 <- as.table(matrix("TOP", nrow=4, ncol=2 )) table2 <- as.table(matrix("BOTTOM", nrow=4, ncol=2 )) > table1 A B A TOP TOP B TOP TOP C TOP TOP D TOP TOP > table2 A B A BOTTOM BOTTOM B BOTTOM BO

我在R中有两个(或更多)相同维度的表格

table1 <- as.table(matrix("TOP", nrow=4, ncol=2 )) 
table2 <- as.table(matrix("BOTTOM", nrow=4, ncol=2 )) 
> table1
  A   B  
A TOP TOP
B TOP TOP
C TOP TOP
D TOP TOP
> table2
  A      B     
A BOTTOM BOTTOM
B BOTTOM BOTTOM
C BOTTOM BOTTOM
D BOTTOM BOTTOM
当我想要的是

 > something(table1,table2, byrow=TRUE)
   A        B       
  A "TOP"    "TOP"   
  A "BOTTOM" "BOTTOM"  
  B "TOP"    "TOP"   
  B "BOTTOM" "BOTTOM"
  C .....

使用“gdata”软件包中的
交错


使用“gdata”软件包中的
交错


我喜欢@Ananda的解决方案。如果您想继续使用base R:

t(mapply(rbind, table1, table2))

虽然还不完全清楚最终目标是什么,但我猜您正在多次调用
,然后希望将它们很好地统一起来

使用
数据表
可能更容易,然后您可以简单地运行

myDT[..., table(<variables>), by=<someFactor>]
myDT[…,table(),by=]

我喜欢@Ananda的解决方案。如果您想继续使用base R:

t(mapply(rbind, table1, table2))

虽然还不完全清楚最终目标是什么,但我猜您正在多次调用
,然后希望将它们很好地统一起来

使用
数据表
可能更容易,然后您可以简单地运行

myDT[..., table(<variables>), by=<someFactor>]
myDT[…,table(),by=]

手工制作的又一次尝试:

stopifnot(nrow(table1)==nrow(table2))
interleaved <- rep(seq(nrow(table1)),each=2)+c(0,nrow(table1))
rbind(table1,table2)[interleaved,]
stopifnot(nrow(表1)=nrow(表2))

交错手工制作的另一次尝试:

stopifnot(nrow(table1)==nrow(table2))
interleaved <- rep(seq(nrow(table1)),each=2)+c(0,nrow(table1))
rbind(table1,table2)[interleaved,]
stopifnot(nrow(表1)=nrow(表2))

交错您可以添加一个值列,其中整数从1到nrow(),并对“rdinded”表进行排序。表
,它是一个增强
数据的包。frame
您可以添加一个值列,其中整数从1到nrow(),并对“rdinded”表进行排序。表
,也可以尝试
数据,这是一个增强
数据的包。frame
我有三组模型统计数据,我想按系数显示它们,而不是按类型显示。因此,在这种情况下,我认为将它们转换为数据表并不是我正在寻找的解决方案。@gmacfarlane,根据您在这里描述的内容判断,请务必阅读
interleave
的帮助页面并运行示例(
library(gdata);example(interleave)
)。我认为其中一个例子与您可能正在做的类似。我有三组模型统计数据,我想按系数而不是按类型显示它们。因此,在这种情况下,我认为将它们转换为数据表并不是我正在寻找的解决方案。@gmacfarlane,根据您在这里描述的内容判断,请务必阅读
interleave
的帮助页面并运行示例(
library(gdata);example(interleave)
)。我认为其中一个例子与您可能正在做的事情类似,甚至比我想象的要简单。谢谢比我想象的还要简单。谢谢