string_split, чтение в файлах и сохранение их в разных списках - PullRequest
0 голосов
/ 13 июня 2019

У меня есть строка символов имен файлов, которые я хочу прочитать.

Они выглядят примерно так:

Называется: 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, и их чтение по отдельности может создать список списков, но он сломается.

1 Ответ

2 голосов
/ 13 июня 2019

Вот один из способов перемещения вещей

readdata <- function(fn){      
  fread(fn, sep = ",")
}

lapply(c("risk", "mgnt"), function(x) {
  lapply(str_subset(files_to_read, pattern = x), readdata)
})

Мы просто lapply по различным шаблонам, которые вы хотите сопоставить, и фильтруем список файлов, которые вы отправляете в read.data.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...