连接list的值以在r中创建.csv文件

时间:2018-07-03 17:59:01

标签: r

假设我有这个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 :(得分:1)

我们可以使用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="|"))))