用R中的map_dfr()重构数据帧



我将玩具iris数据集根据它们所拥有的类分为3部分。

setosa <- read_csv("iris-setosa.csv") %>%
mutate(Species = "setosa")
versicolor <- read_csv("iris-versicolor.csv") %>%
mutate(Species = "versicolor")
virginica <- read_csv("iris-virginica.csv") %>%
mutate(Species = "virginica")
df_iris <- bind_rows(setosa, versicolor, virginica)
df_iris

我想在阅读时使用map_dfr()重新创建这个df,它可以用一种简单得多的方式来完成。我试过以下内容,但没有完全写出来。

species <- c("setosa", "versicolor", "virginica")
map_dfr(species, ~ df_iris)

如果我们想根据对象名称作为字符串用map重新创建"df_iris",请在循环中使用get

df_iris2 <- map_dfr(species, get)

get是一个base R函数,它以字符串的形式从全局环境中返回或获取基于对象名称的对象值


或使用bind_rows

df_iris3 <- bind_rows(mget(species))

最新更新