重命名嵌套列表 R

标签 r list names

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

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/

相关文章:

c++ - c99 : 63 characters of an internal name are significant?

c# - 如何避免重复将大量名称相似的变量分配给许多对象中的大量字段

list - 在Lua中从未知数量的列表中递归地构建一个表

list - 如何将函数应用于 haskell 中的列表?

r - R gsub不适用于apply

r - 基于向量向数据框添加几个变量

javascript - 如何滚动到 ul 列表中的 li 元素

r - 将命名向量转换为列表但保留向量名称

r - 以不同方式使用数字索引对 data.table 列进行子集化时的不同结果

R data.table 1.9.2 关于 setkey 的问题