Читать несколько файлов в один список, используя каналы - PullRequest
0 голосов
/ 16 ноября 2018

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

> list(file_one = c(1,2,3,4), file_two = c(9,99,999))
$file_one
[1] 1 2 3 4

$file_two
[1]   9  99 999

...

Это основной формат, который я хочу. То, что я пока имею, является аналогичным результатом, но не правильным:

> list.files("/home/x/y/z", pattern="^rep.*List$", full.names=TRUE) %>% lapply(read.table)

[[1]]
    V1
1   a
2   b
3   c
4   d

Как я могу прочитать данные в правильном формате или преобразовать их отсюда? - желательно, чтобы у меня был «конвейер» для чтения данных:

  1. список файлов
  2. читать файлы в правильном формате или
  3. форматирование прочитанных данных в список именованных векторов

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Возможно, вам нужно что-то вроде этого

library(tidyverse)

list.files("xyz/", full.names = TRUE) %>% 
  set_names(basename(.)) %>% 
  map(read_lines)

#> $`rep1List`
#> [1] "a" "b" "c" "d" "e" "f"
#> 
#> $rep2List
#> [1] "e" "f" "g" "h" "i" "j" "k"
#> 
#> $rep3List
#> [1] "l" "m" "m" "o" "p" "q" "r" "s"

, где каждый из файлов выглядит так: img

0 голосов
/ 16 ноября 2018

на основании предоставленной вами информации, я бы попробовал что-то вроде ниже, используя purrr-Package:

list.files("/home/x/y/z", pattern="^rep.*List$", full.names = TRUE) %>% 
  purrr::map_df(., read.table, ADD YOUR ARGUMENTS HERE)

Это работает для реального примера для меня.Это не с вашим составленным файлом.Я бы только прокомментировал, но я слишком низок.^^

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