在 R 中创建包含数据框的二维结构

Create a two-dimensional structure containing data frames in R

我想创建一个包含数据框的二维结构(不使用 for 循环)。

我试过了,其中 loadDF returns a data.frame.

langs <- c("en_US", "de_DE", "fi_FI", "ru_RU")
types <- c("blogs", "news", "twitter")
tables <- 
    sapply(langs, function(lang) sapply(types, function(type) loadDF(lang, type)))

我希望能够使用

之类的东西索引到 tables
tables["de_DE", "twitter"]

或者可能是这样的:

tables[which(langs == "de_DE"), which(types == "twitter")]

正在获取数据框。

你是如何创建这样一个结构的?或者这在 R 中是不可能的?如果不可能,最好的选择是什么?

我在这里创建了一个 loadDF 函数来使这个示例可重现

loadDF<-function(a,b) {
    data.frame(a=a, b=b, x=runif(3))
}

如果你把你的项目塞进一个列表中,你实际上可以得到一个类似于你想要的结构

tables <- 
    sapply(langs, function(lang) sapply(types, function(type) list(loadDF(lang, type))))

那你可以

tables[["twitter","de_DE"]]

请注意,我们在这里使用双括号从这个维度列表中提取 data.frame。