R 创建假数据以重新创建列联表

R 创建假数据以重新创建列联表,r,dataframe,reshape,R,Dataframe,Reshape,是否可以创建假数据来重新创建列联表 例如: originalTable <- matrix(c(188, 29, 20, 51), ncol = 2, byrow = TRUE) colnames(originalTable) <- c("A", "B") rownames(originalTable) <- c("C", "D") 提前感谢您可以使用该表生成正确的对数 x = c() for(row in rownames(originalTable)) { for

是否可以创建假数据来重新创建列联表

例如:

originalTable <- matrix(c(188, 29, 20, 51), ncol = 2, byrow = TRUE)
colnames(originalTable) <- c("A", "B")
rownames(originalTable) <- c("C", "D")

提前感谢

您可以使用该表生成正确的对数

x = c()
for(row in rownames(originalTable)) {
    for(col in colnames(originalTable)) {
        x = rbind(x, matrix(rep(c(row, col), originalTable[row,col]), ncol=2, byrow=TRUE))
    }
}

df = as.data.frame(x)
table(df)
   V2
V1    A   B
  C 188  29
  D  20  51

您可以使用该表生成正确的对数

x = c()
for(row in rownames(originalTable)) {
    for(col in colnames(originalTable)) {
        x = rbind(x, matrix(rep(c(row, col), originalTable[row,col]), ncol=2, byrow=TRUE))
    }
}

df = as.data.frame(x)
table(df)
   V2
V1    A   B
  C 188  29
  D  20  51

您可以使用我的“splitstackshape”软件包中的
expandRows

如果您已经在处理实际的
,则不需要
as.table

当然,您也可以不使用软件包:

data.frame(as.table(originalTable))[rep(sequence(prod(dim(originalTable))), 
                                        c(originalTable)), c(1, 2)]

您可以使用我的“splitstackshape”软件包中的
expandRows

如果您已经在处理实际的
,则不需要
as.table

当然,您也可以不使用软件包:

data.frame(as.table(originalTable))[rep(sequence(prod(dim(originalTable))), 
                                        c(originalTable)), c(1, 2)]

太好了,那正是我要找的!我试图重新创建一些在教科书和论文中找到的数据集。再次感谢!太好了,那正是我要找的!我试图重新创建一些在教科书和论文中找到的数据集。再次感谢!谢谢,这更简单!很棒的包裹,我不知道,太好了!谢谢,这更简单!很棒的包裹,我不知道,太好了!在
data.frame(as.table(originalTable))
步骤之后,您可以在此处找到备选方案:另一个:在
data.frame(as.table(originalTable))
步骤之后,您可以在此处找到备选方案:另一个: