Объединить значения списка для создания файла .csv в r - PullRequest
0 голосов
/ 03 июля 2018

Допустим, у меня есть это DF:

  Group.1     Abstract      Advisor
1 ANHEMBI     TRUE,FALSE    TRUE
2   BNDES     TRUE,FALSE    FALSE
3    CDTN     TRUE          TRUE
4    CPRM     TRUE          TRUE
5     EBM     TRUE          TRUE
6    ENAP     FALSE         TRUE,FALSE

когда я пытаюсь написать файл .csv, он возвращает ошибку, потому что некоторые наблюдения lists.

Как я могу, например, объединить эти значения, чтобы получилось так:

  Group.1     Abstract      Advisor
1 ANHEMBI     TRUE|FALSE    TRUE
2   BNDES     TRUE|FALSE    FALSE
3    CDTN     TRUE          TRUE
4    CPRM     TRUE          TRUE
5     EBM     TRUE          TRUE
6    ENAP     FALSE         TRUE|FALSE

И я мог бы написать файл .csv.

Я проделал аналогичный трюк с другими данными, но я сделал это только для одного столбца, используя этот код:

for(i in 1:length(df[,1])){
  if(is.list(df[i,9])){
    df[i,9]=paste(unlist(df[i,9]),collapse="|")
  }
}

Как я могу сделать это для всех столбцов? (у моего DF больше 20)

И я также хотел бы знать, является ли это наилучшим способом экспорта списков в кадры данных или есть другие предложения ...

1 Ответ

0 голосов
/ 03 июля 2018

Мы можем использовать dplyr

library(dplyr)
DF %>%
   mutate_at(2:3, funs(str_replace(., ",", "|")))

Если столбцы list

library(purrr)
DF %>%
   mutate_at(2:3, funs(map_chr(., ~ paste(.x, collapse="|"))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...