如何从包含data.frames的列表中提取数据,如下列数据?
library(tidyverse)
data <- iris %>% split(iris$Species)
我想获得以下数据
iris$Species
答案 0 :(得分:1)
如果您特别想要该列,请注意该数据现在是names
元素的data
。
names(data)
#[1] "setosa" "versicolor" "virginica"
如果您想要其他专栏,请尝试
col <- "Sepal.Length"
lapply(data, function(x) x[[col]])
顺便说一下,也许您可以将data
命名为其他内容,它已经是R
函数的名称。
修改强>
抱歉上面的蠢事,更好的是
lapply(data, '[[', col)
答案 1 :(得分:1)
如果您使用的是tidyverse
,则可以考虑map
中的purrr
。以下所有方法都有效。
library(tidyverse)
data <- iris %>% split(iris$Species)
map(data, "Species")
map(data, 5)
map(data, ~.$Species)
map(data, ~.x$Species)
map(data, `$`, "Species")
map(data, `[[`, "Species")
map(data, pluck, 'Species')