Как игнорировать запятую в значениях при чтении CSV-файлов в R? - PullRequest
1 голос
/ 01 апреля 2019

Я читаю csv-файлы в R из папки, в которой есть куча csv-файлов.Мне нужно только прочитать выбранные файлы, где имя файла содержит определенную строку («Избыточный»).В некоторых из желаемых файлов одно из значений столбца («ROLE») содержит запятую.Мне нужно игнорировать эти запятые.как мне это сделать?

Например: некоторые нужные файлы имеют такие значения, как:

User,ROLE,Rule ID<br/>
amit,[oi.freetier.developer, gse.automationengineer],R12345

Когда я выполняю следующий код:

files <- list.files(pattern='.*REDUNDANT(.*).csv$')

tbl <- sapply(files, read_csv, col_types = cols(.default = "c"), quote = "[]", simplify=FALSE) %>% 
  bind_rows(.id = "id") %>% select(id, `User Login`, `Rule ID`) %>% distinct()

, я получаюрезультат как:

   id                               `User` `Rule`              
   <chr>                            <chr>        <chr>                  
 1 Users.csv_REDUNDANT_amit.csv   amit       gse.automationengineer]

1 Ответ

1 голос
/ 01 апреля 2019

Вы можете сначала прочитать файлы в виде необработанного текста, чтобы заменить квадратные скобки на кавычки, а затем прочитать их как csv:

tbl <- sapply(files, function(f) {
           gsub('\\[|\\]', '"', readLines(f)) %>%
               read.csv(text = ., check.names = FALSE)
       }) %>% 
       bind_rows(.id = "id") %>%
       select(id, User, `Rule ID`) %>%
       distinct()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...