我正在尝试将整个矩阵/数组存储到数据框的单个单元格中,但不太记得该怎么做。
现在,在您说无法完成之前,我确定我记得有人在 SO 上提出了一个问题,尽管那不是问题的重点,所以我再也找不到了。
例如,您可以将矩阵存储在矩阵的单个单元格中,如下所示:
myMat <- array(list(), dim=c(2, 2))
myMat[[1, 1]] <- 1:5
myMat[[1, 2]] <- 6:10
# [,1] [,2]
#[1,] Integer,5 Integer,5
#[2,] NULL NULL
诀窍在于使用双括号[[]]
。
现在我只是不知道如何为数据框做这件事(或者如果可以的话):
# attempt to make a dataframe like above (except if I use list() it gets
# interpreted to mean the `m` column doesn't exist)
myDF <- data.frame(i=1:5, m=NA)
myDF[[1, 'm']] <- 1:5
# Error in `[[<-.data.frame`(`*tmp*`, 1, "m", value = 1:5) :
# more elements supplied than there are to replace
# this seems to work but I have to do myDF$m[[1]][[1]] to get the 1:5,
# whereas I just want to do myDF$m[[1]].
myDF[[1, 'm']] <- list(1:5)
我想我快到了。通过最后一次尝试,我可以myDF[[1, 'm']]
进行检索list(1:5)
并因此myDF[[1, 'm']][[1]]
获得1:5
,但我更愿意只做myDF[[1, 'm']]
和获得1:5
。