【发布时间】:2020-01-27 18:43:12
【问题描述】:
我有很多 csv 文件,我使用 lapply 和 vroom 包读取它们(它有 18 个文件,每个文件中有数百万行)
library(vroom)
filelist <- list.files(pattern = "*.csv")
输入(文件列表)
c("UPW_119_1.csv", "UPW_119_2.csv", "UPW_119_3.csv")
files <- lapply(filelist, FUN=vroom)
假设下面是我的列表的样子:
files <- list(no1= c("1","2","3","4","5"), no2= c(1:3),no3 = c("190301010141","190301010141","190301010143","19030101014","190301010145"))
我想为列表中的每个元素添加“91”前缀,后跟它们在文件列表中的文件名
我尝试过类似的方法,但它不正确
mytry :
files2 <- paste0("91", files, fileslist[i]) #Adding file name
需要的输出
## List of 3
## $ f1 : int [1:5] 911_UPW_119_1 912_UPW_119_1 913_UPW_119_1 914_UPW_119_1 915_UPW_119_1
## $ no2: int [1:3] 911_UPW_119_2 912_UPW_119_2 913_UPW_119_2
## $ no3: int [1:5] "9190301010141_UPW_119_3","91190301010141_UPW_119_3","91190301010143_UPW_119_3","9119030101014_UPW_119_3","91190301010145_UPW_119_3")
然后我想写这些 csv 文件
总而言之,读取 18 个 csv 文件,按照上述方式进行修改,添加“91”(静态)和文件名(动态),然后写入 18 个 csv 文件
我研究了很多,尝试了 lapply 和 list 功能等但没有帮助!
【问题讨论】:
-
我一定会试试这个,有没有一种快速/节省内存的方法?因为有 18 个文件,每个文件都有数百万行。这种执行方式看起来很慢
标签: r list data.table tidyverse