gpt4 book ai didi

r - 在R中的每个元素列表中添加前缀

转载 作者:行者123 更新时间:2023-12-02 04:22:54 24 4
gpt4 key购买 nike

我有很多使用lapply和vroom包读取的csv文件(它有18个文件,每个文件中有数百万行)

library(vroom)
filelist <- list.files(pattern = "*.csv")

dput(文件列表)
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函数等,但是没有帮助!

最佳答案

您可以使用lapply:

filelist <- c("UPW_119_1.csv", "UPW_119_2.csv", "UPW_119_3.csv")
files <- list(no1= c("1","2","3","4","5"), no2= c(1:3),no3 = c("190301010141","190301010141","190301010143","19030101014","190301010145"))

lapply(1:length(files), function(k) paste(91, files[[k]], sub(".csv", "", filelist[[k]], fixed = TRUE), sep = "_"))

它是通过 lapply vector 化的,因此非常有效

关于r - 在R中的每个元素列表中添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58134546/

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