重命名嵌套列表 R

Rename nested lists R

我正在尝试为一系列统计测试整理我的原始数据。我创建了一个包含来自不同实验的所有原始数据的大列表,如下所示。

E1 <- runif(60,0,1)
E2 <- runif(60,0,1)
E3 <- runif(60,0,1)
Data = list("E1"=E1, "E2"=E2, "E3"=E3)

Format.Data <- function(x){
  (dim(x) <- c(5,3,4))
  colnames(x) <- paste("Col", 1:3, sep="");  x
  rownames(x) <- paste("Rep", 1:5, sep="");  x
}
Raw.Data <- lapply(Data, Format.Data)

这将生成嵌套列表 $E1$E3 的列表,其中包含嵌套矩阵 ,,1,,4,显示 3 列的 5 次实验重复。我想将这些嵌套列表的名称从 ,,1 更改为 ,,4 ,例如,以下向量中的名称:

TreatmentsE1 <- c("Zero", "Two", "Four", "Eight")
TreatmentsE2 <- c("Zero", "0.25", "0.5", "One")
TreatmentsE3 <- c("Zero", "0.25", "0.5", "One")

我好像做不到。 R一直告诉我Raw.Data的长度是3,任何嵌套的$E1$E3的长度是60。我想重命名嵌套矩阵,而不是元素。

我们可以使用 Maplist 的元素的 dimnames 更改为 'TreatmentsE' 值

Raw.Data1 <- Map(function(x,y) {dimnames(x)[[3]] <- y
                                x},
        Raw.Data, mget(paste0("TreatmentsE", 1:3)))