使用 lapply 保留文件名合并列表?

问题描述 投票:0回答:1

我正在从一个文件夹导入多个温度寄存器的 .csv 文件,并且需要创建一个表将它们全部合并,其中必须跳过前 15 行并且必须保留文件名。 如何保留文件名?

如有任何建议,我们将不胜感激

谢谢

> setwd("")
> 
> files <- list.files("folder",pattern = ".csv", recursive
> = T, full.names = T)
> 
> data<- do.call(rbind, lapply
>                 (files, read.csv, as.is=T, skip = 15, header = TRUE))

使用此代码我得到了表格,但不知道如何使用文件名添加新变量

> data
                   time temp
1   2019-11-29 19:39:28 14.4
2   2019-11-29 20:09:28 14.4
3   2019-11-29 20:39:28 14.5
4   2019-11-29 21:09:28 14.5
r filenames sapply rbind skip
1个回答
0
投票

您可能想要类似的东西

files = list.files("folder", pattern = "\\.csv$", recursive = TRUE, full.names = TRUE)
# data0 = 
lapply(files, \(i) { # or basename(files)?
  file = read.csv(i, as.is = TRUE, skip = 15L, header = TRUE) 
  transform(file, name = rep(i, nrow(file))) # or sub(".csv", "", i) instead of i
  }) |> do.call(what = "rbind") 
© www.soinside.com 2019 - 2024. All rights reserved.