我有两个包含数据的数据框
seed(1234)
dfX <- data.frame(matrix(sample(1:100, 25), 20, 5), row.names = paste("AB", sample(1:20, replace=FALSE), sep=""))
colnames(dfX) <- c("G", "H", "I", "J", "K")
dfY <- data.frame(matrix(sample(1:100, 25), 20, 5), row.names = paste("AB", sample(1:20, replace=FALSE), sep=""))
colnames(dfY) <- c("G", "H", "I", "J", "K")
我还有
中数据框的名称asNames <- c("Test1", "Test2")
现在我想创建一个包含这两个数据帧的列表LL,但是这样我可以使用LL $ Test1给我数据帧dfX。我当然可以使用
list("Test1" = dfX, "Test2" = dfY)
但这不是动态的,因为我有可变数量的数据帧。我曾希望这样的东西能起作用
list(asNames[1] = dfX, asNames[2] = dfY)'
但这会给出错误消息
错误:“list(asNames [1] =”
中的意外'='
同样list(dfX, dfY)
没有给我所需的结果,因为名字(LL)= NULL,我只能通过LL [[1]]来检索dfX。
这是问题的基本部分。另一个方面是当我有大量的数据框,其名称存储在vNames中。如何将数据框添加到列表LL2中,并使用vNames中的名称。
我想这就像是
LL2 <- lapply(seq_along(vNames), function(x, LL, vN){c(LL, vN[x] = get(vN[x])}, LL = LL2, vN = vNames)
非常感谢提前。
答案 0 :(得分:0)
LL <- setNames(list(dfX, dfY), asNames)
会做到这一点。