相同的行和列名称R

我正在使用数据透视表在R中做两个土地覆盖时期的变化matrix,

我有如何做在R中的数据透视表的方式,但我进一步操纵数据框有点麻烦。

我需要从具有不同行和列的dataframe中获得确切的行和列,并将0放在缺less的行/列中。

样品:

df <- matrix(1:20, 4) colnames(df) <- c('a', 'b', 'c', 'd', 'e') rownames(df) <- c('a', 'b', 'c', 'd') df1 <- df[-3,] df1 

在'df1'中,行'c'和'e'缺失。 我开始做一个循环,进入行,寻找什么是缺less的:

 FinalTable <- function (df){ for (i in rownames(df)){ if (i != colnames(df)){ print ('not equal') } } } 

在此之后,我需要执行rbind添加行中缺less的列。

我感谢您的帮助。

我可以发送原始和期望的表格供您参考。

谢谢!

南多

我们可以创build一个全名的matrix ,然后根据匹配的行名和列名在原始matrix和新matrix中使用match来获得行列索引,然后将其分配给新的数据集

 un1 <- sort(union(rownames(df1), colnames(df1))) m1 <- matrix(0, dimnames = list(un1, un1), ncol=length(un1), nrow=length(un1)) i1 <- match(rownames(m1), rownames(df1), nomatch = 0) j1 <- match(colnames(m1), colnames(df1), nomatch = 0) i2 <- match(rownames(df1), rownames(m1)) j2 <- match(colnames(df1), colnames(m1)) m1[i2,j2] <- df1[i1,j1] m1 # abcde #a 1 5 9 13 17 #b 2 6 10 14 18 #c 0 0 0 0 0 #d 4 8 12 16 20 #e 0 0 0 0 0