如何从R中的表中填充矩阵的单元格

时间:2015-11-02 23:03:48

标签: arrays r matrix

我有一个表,是从现有的data.frame创建的,如下所示:

tab <- as.table(
  matrix(c(0.625, 0.625, 0.375, 0.375, 1, 1), nrow=2, 
  dimnames=list(action = c("1", "Sum"), status = c("fail", "pass", "Sum")))
)

#      status
#action  fail  pass   Sum
#   1   0.625 0.375 1.000
#   Sum 0.625 0.375 1.000

我想将这些值填充到数组中的一行p1

p1 <- array(0,c(2,2,2))
colnames(p1)=c("within","out")
rownames(p1)=c("within","out")

所以我想从tab的第一行获得.625和.375并将其放入p1的第一个矩阵的第一行,以获得:

#, , 1
#
#       within   out
#within  0.625 0.375
#out     0.000 0.000
#
#, , 2
#
#       within out
#within      0   0
#out         0   0

2 个答案:

答案 0 :(得分:2)

你似乎在这里乱七八糟的代码,但你可以这样做:

p1[1,,1] <- tab["1",c("fail","pass")]
#or
p1[1,,1] <- tab[1,1:2]

#, , 1
#
#       within   out
#within  0.625 0.375
#out     0.000 0.000
#
#, , 2
#
#       within out
#within      0   0
#out         0   0

答案 1 :(得分:0)

而不是p1[1,,1]<-matrix(c(tab$p,tab$f),2,1,byrow = TRUE) 我必须在p1矩阵内设置制表符的每个单元格的位置。这将是

p1[1,,1]<-matrix(c(tab[1,1],tab[1,2]),2,1,byrow = TRUE)