我有一个要读取的文件名字符串。
它们看起来像:
致电:files_to_read
c:/file1/risk/2001
c:/file1/risk/2002
c:/file1/risk/2003
c:/file1/risk/2004
c:/file1/mgnt/2001
c:/file1/mgnt/2002
c:/file1/mgnt/2003
c:/file1/mgnt/2004
我正在尝试创建一个函数以读取数据并将其存储为列表:以下内容读取字符串中的所有文件并将它们存储在单个列表中:
readdata <- function(fn){
dt_temp <- fread(fn, sep = ",")
return(dt_temp)
}
mylist <- lapply(file_to_read, readdata)
但是,我想将结果存储在2个单独的列表中,一个用于risk
,另一个用于mgnt
。我有以下不起作用的东西:
readdata <- function(fn){
function(split){
risk <- str_subset(cosine_results, pattern = "risk")
mgnt <- str_subset(cosine_results, pattern = "mgnt")
dt_temp <- fread(risk, sep = ",")
return(dt_temp)
}
}
mylist <- lapply(files_to_read, readdata)
我考虑过基于risk
和mgnt
值进行子设置,并分别读取它们可能会创建一个列表列表,但会中断。
答案 0 :(得分:2)
这是移动事物的一种方法
readdata <- function(fn){
fread(fn, sep = ",")
}
lapply(c("risk", "mgnt"), function(x) {
lapply(str_subset(files_to_read, pattern = x), readdata)
})
我们只lapply
遍历您要匹配的不同模式并过滤要发送到read.data的文件列表。