在 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。
我想创建一个包含数据框的二维结构(不使用 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。