我有一个名为的数据框input
。第一列指的是文章 ID (ArtID
),后续列将用于创建矩阵。
基于ArtID
,我希望 R 生成一个 2x2 矩阵(更准确地说:它必须是一个 2x2 数字矩阵)。具体来说,我想为第一行创建一个矩阵(ArtID == 1
),第二行(ArtID == 2
) 等等...
到目前为止我想到的是:
for(i in 1:3) {stored.matrix = matrix(input[which(ArtID ==i),-1],nrow = 2)
这给了我一个 2x2 矩阵,但它不是数字(它需要是)。
如果我申请as.numeric
,矩阵不再是 2x2 矩阵。
如何获得 2x2 数值矩阵?
最小可重现示例:
ArtID = c(1,2,3)
AC_AC = c(1,1,1)
MKT_AC = c(0.5,0.6,0.2)
AC_MKT = c(0.5,0.6,0.2)
MKT_MKT = c(1,1,1)
input = data.frame(ArtID, AC_AC, MKT_AC, AC_MKT, MKT_MKT)
stored.matrix = matrix(input[which(ArtID ==i),-1],nrow = 2)
# [,1] [,2]
#[1,] 1 0.5
#[2,] 0.5 1
is.numeric(stored.matrix)
# [1] FALSE
as.numeric(stored.matrix)
## [1] 1.0 0.5 0.5 1.0
申请后可以看到as.numeric()
矩阵不再是 2x2。
有人可以帮忙吗?