gpt4 book ai didi

r - 导入和转换许多 csv 文件

转载 作者:行者123 更新时间:2023-12-02 03:01:46 24 4
gpt4 key购买 nike

我正在以低效的方式导入和转换许多文件。我想知道是否有人可以向我展示使用 purr 的更快方法。以下代码是我尝试过的,它应该为您提供一般模式:

data_2013 <- read_csv("data_2013") %>%
clean_names() %>% # using the janitor package
mutate(year = "2013")

data_2014 <- read_csv("data_2014") %>%
clean_names() %>%
mutate(year = "2014")

年份增加 1(一直到 2019 年)。我最终加入了所有这些文件,因为关键变量是相同的。但显然文件的导入效率很低。

任何帮助将不胜感激

最佳答案

我们可以使用 map 循环执行此操作。循环文件名,使用 read_csv 读取,清理名称,然后创建“年份”列

library(dplyr)
library(stringr)
library(purrr)
library(readr)
library(janitor)

files <- paste0("data_", 2013:2019, ".csv")
lst1 <- files %>%
map(~ read_csv(.x)) %>%
clean_names() %>%
mutate(year = str_extract(., "\\d{4}"))

如果list输出需要合并到单个数据帧

dat1 <- bind_rows(lst1, .id = 'grp')

base R中,这可以通过lapply来完成

lst1 <- lapply(files, function(x) transform(read.csv(x), 
year = sub("data_(\\d+)\\..*", "\\1", x)))
dat1 <- do.call(rbind, Map(cbind, lst, grp = seq_along(lst1)))

关于r - 导入和转换许多 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59815020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com