【问题标题】:Insert a column with file name插入带有文件名的列
【发布时间】:2020-05-09 13:27:00
【问题描述】:

有了这个代码就可以从一个文件路径读取多个csv

setwd("C:/Users/Nathalie/mycsvs")
files <- list.files(path = "C:/Users/Nathalie/mycsvs",pattern = ".csv")
temp <- lapply(files, fread, sep=",")

如何向数据框中添加一列,该列将具有每行来自的文件名?

【问题讨论】:

标签: r


【解决方案1】:

我们可以使用Map 并使用cbind 创建一个新列来显示每个文件的文件名。

Map(cbind, lapply(files, data.table::fread, sep=","), filename = files)

我们也可以使用 purrr 包中的函数来做同样的事情。

library(purrr)
map2(map(files, data.table::fread, sep=","), files, cbind)

要使用lapply,我们可以遍历文件名的索引,并使用transform 添加带有文件名的新列。

lapply(seq_along(files), function(x) transform(read.csv(files[x]), file = files[x]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多