重命名嵌套列表 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。我想重命名嵌套矩阵,而不是元素。
我们可以使用 Map
将 list
的元素的 dimnames
更改为 'TreatmentsE' 值
Raw.Data1 <- Map(function(x,y) {dimnames(x)[[3]] <- y
x},
Raw.Data, mget(paste0("TreatmentsE", 1:3)))
我正在尝试为一系列统计测试整理我的原始数据。我创建了一个包含来自不同实验的所有原始数据的大列表,如下所示。
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
将 list
的元素的 dimnames
更改为 'TreatmentsE' 值
Raw.Data1 <- Map(function(x,y) {dimnames(x)[[3]] <- y
x},
Raw.Data, mget(paste0("TreatmentsE", 1:3)))