加载多个 .RData 并绑定到一个 data.frame
Loading multiple .RData and binding into a single data.frame
我在一个文件夹中有多个 .RData
。我可以按如下方式加载它们:
df1 <- data.frame(X = 1:10)
df2 <- data.frame(X = 1:10)
save(df1, file = "df1.RData", compress = "xz")
save(df2, file = "df2.RData", compress = "xz")
rm(list = ls())
load("df1.RData")
load("df2.RData")
并使用 dplyr
中的 bind_rows
函数将它们绑定为
library(tidyverse)
bind_rows(df1, df2)
我想知道是否可以加载所有文件并像这样绑定它们
list.files(
path = "."
, pattern = "*.RData"
, full.names = TRUE
) %>%
map_dfr(.x = ., .f = ~load(file = .x))
您可以使用 get()
来 return 来自调用环境的数据,或者将它们加载到新环境中,然后再绑定它们。请注意,.Rdata
文件可以包含多个对象,但假设这些对象都是一致的,您可以这样做:
library(purrr)
library(dplyr)
df1 <- data.frame(X = 1:10)
df2 <- data.frame(X = 1:10)
save(df1, file = "df1.RData", compress = "xz")
save(df2, file = "df2.RData", compress = "xz")
list.files(pattern = "\.RData$") %>%
map_df(~ get(load(file = .x)))
X
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 1
12 2
13 3
14 4
15 5
16 6
17 7
18 8
19 9
20 10
或者:
temp_env <- new.env()
list.files(pattern = "\.RData$") %>%
map(~load(file = .x, envir = temp_env))
bind_rows(as.list(temp_env))
我在一个文件夹中有多个 .RData
。我可以按如下方式加载它们:
df1 <- data.frame(X = 1:10)
df2 <- data.frame(X = 1:10)
save(df1, file = "df1.RData", compress = "xz")
save(df2, file = "df2.RData", compress = "xz")
rm(list = ls())
load("df1.RData")
load("df2.RData")
并使用 dplyr
中的 bind_rows
函数将它们绑定为
library(tidyverse)
bind_rows(df1, df2)
我想知道是否可以加载所有文件并像这样绑定它们
list.files(
path = "."
, pattern = "*.RData"
, full.names = TRUE
) %>%
map_dfr(.x = ., .f = ~load(file = .x))
您可以使用 get()
来 return 来自调用环境的数据,或者将它们加载到新环境中,然后再绑定它们。请注意,.Rdata
文件可以包含多个对象,但假设这些对象都是一致的,您可以这样做:
library(purrr)
library(dplyr)
df1 <- data.frame(X = 1:10)
df2 <- data.frame(X = 1:10)
save(df1, file = "df1.RData", compress = "xz")
save(df2, file = "df2.RData", compress = "xz")
list.files(pattern = "\.RData$") %>%
map_df(~ get(load(file = .x)))
X
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 1
12 2
13 3
14 4
15 5
16 6
17 7
18 8
19 9
20 10
或者:
temp_env <- new.env()
list.files(pattern = "\.RData$") %>%
map(~load(file = .x, envir = temp_env))
bind_rows(as.list(temp_env))