r中向量矩阵与col /行名称和未知长度

时间:2017-01-30 10:09:48

标签: r matrix vector

我正在尝试创建一个数据结构来存储矢量。我正在寻找的是一个3x2矩阵,里面有不同长度的矢量。

             front        side 
Original  c(dim=221) c(dim =200)
zscore    c(dim=221) c(dim =200)
smoothed  c(dim=221) c(dim =200)

我尝试过:

dataset <- array(dim=c(3,2))
rownames(dataset) <- c("original","zscores","smoothed")
colnames(dataset) <- c("front", "side")

dataset["original", "side"] <- myNumericVectorOfLength221
dataset["original", "front"] <- myNumericVectorOfLength200

但它会抛出“不一样的大小”的错误。像dataset <- array(dim=c(3,2,221))这样的三维数组由于长度的不同而不起作用,如果我创建像(dataset["original", "side"] <- list(c(1,2,3)))这样的向量矩阵,我会丢失col / rownames。

有没有符合我想法的解决方案?提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以创建一个多维列表,例如:

.scrollable-dropUp{
   overflow: scroll;       /*overflow-x and overflow-y*/
   max-height: 200px !important;
}

答案 1 :(得分:1)

您可以将矢量保存在列表中,并命名该列表的元素。

创建一个包含所有向量的列表

mylist <- list("front_Original" = vector1, "front_zscore" = vector2, ...)

或为您的因素创建子列表

mylist2 <- list("front" = list("Original" = vector1, "zscore" = vector2, ...), 
               "side" = list("Original" = vector3, "zscore" = vector4))

列表元素可以是不同的类和维度,因此您不会以这种方式遇到任何问题。引用列表与data.frame的工作方式类似,因此您可以使用mylist2mylist2$front$Original来调用mylist2[[1]][[1]]的某个向量。