如何从列表数据框中提取列数据

时间:2017-09-20 17:52:17

标签: r dataframe

如何从包含data.frames的列表中提取数据,如下列数据? library(tidyverse) data <- iris %>% split(iris$Species)

我想获得以下数据 iris$Species

2 个答案:

答案 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')