gpt4 book ai didi

r - 如何组合多个 .csv 文件,并在 R 中添加一个包含每个数据集名称的列?

转载 作者:行者123 更新时间:2023-12-03 23:12:34 26 4
gpt4 key购买 nike

我正在尝试在 R 中组合多个 CSV 文件,以便可以进行一些预测建模。虽然每个文件具有相同的列并且这些列的相同顺序是相同的,但某些列的名称不同。到目前为止,我的代码很好地组合了文件并去掉了标题。然而,我现在需要它为与每个 CSV 关联的日期添加另外两列。每个 CSV 的文件名都包含日期。

文件名的格式如下:“2017 年 1 月”、“2017 年 2 月”、“2017 年 3 月”等。

所以我希望这两列是月份和年份。

以下是我到目前为止使用的代码。它将所有 CSV 合并为一个,但不会创建我需要的另外两个列。

dat <- setwd('C:/Users/ . . . /Historical Data')

file_names <- dir(dat)
dataset <- do.call(rbind, lapply(file_names, read.csv, skip = 1, header = FALSE))
dataset <- do.call(rbind, lapply(file_names, read.csv, header = FALSE, function(x) cbind(read.csv(x), name=strsplit(x,'\\.')[[1]][1])))

head(dataset)

谁能指出我正确的方向,以了解如何最好地将这两列编码成这个?

最佳答案

你的代码一开始就很好。

以下代码读取 file_list 中的每个元素并将其附加到一个空列表中。然后它将所有元素绑定(bind)在一起。它适用于批量读取文件并将其文件名保存在单独的列中。

尝试这样做:

library(data.table)
file_list <- list()
file_list <- lapply(file_names, function(x){
ret <- read_csv(x)
ret$origin <- x
return(ret)})
df <- rbindlist(file_list)

关于r - 如何组合多个 .csv 文件,并在 R 中添加一个包含每个数据集名称的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56012967/

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