让我告诉你我的剧本
test_call = read_excel(path="E:\\matrix.xlsx", sheet="Sheet1", col_names=TRUE)
df <- data.frame(test_call)
df2 <-as.data.frame.matrix(table(df))
n <- nrow(df2)
m <- ncol(df2)
rownames(A) <- 1:n
colnames(A) <- 1:m
B <- rbind(cbind(matrix(0,n,n),df2),cbind(t(df2),matrix(0,m,m)))
第一个问题是我跑“n&lt; - nrow(df2)&amp; m&lt; - ncol(df2)” 我收到了警告信息,例如“dimnames'1的长度不等于数组范围” 我想我会计算行数并将这些值放入我的行和列的名称中 我不知道为什么。 第二个问题是,当我运行“B&lt; - rbind(cbind(matrix(0,n,n),df2),cbind”时,我得到的消息“dimnames'1的长度不等于数组范围”吨(DF2),基质(0,M,M)))” 我怎样才能解决这个问题?
答案 0 :(得分:1)
不完全确定你在那里做什么,却没有看到你的数据是什么以及你的最终结局是什么。
什么是矩阵A?
但是这样的事情可能对你有用吗?
test_call = read_excel(path="E:\\matrix.xlsx",
sheet="Sheet1",
col_names=TRUE)
df <- data.frame(test_call)
df2 <-as.matrix(table(df))
n <- nrow(df2)
m <- ncol(df2)
rownames(df2) <- 1:n
colnames(df2) <- 1:m
B <- rbind(cbind(matrix(0,n,n),df2),cbind(t(df2),matrix(0,m,m)))
根据您要调用列的方式,您还可以执行以下操作:
rownames(df2) <- NULL
colnames(df2) <- NULL
B <- rbind(cbind(matrix(0,n,n),df2),cbind(t(df2),matrix(0,m,m)))
colnames(B) <- 1:(n+m)
rownames(B) <- 1:(n+m)