我正在尝试组织我的原始数据以进行一系列统计测试。我创建了一个包含来自不同实验的所有原始数据的大型列表,如下所示。
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。我想重命名嵌套矩阵,而不是元素。
最佳答案
我们可以使用Map
使用“TreatmentsE”值更改list
元素的dimnames
Raw.Data1 <- Map(function(x,y) {dimnames(x)[[3]] <- y
x},
Raw.Data, mget(paste0("TreatmentsE", 1:3)))
关于重命名嵌套列表 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42687618/