在tapply和unlist之后,数据无法导出到CSV

时间:2018-04-17 20:31:11

标签: r csv tapply

我是R的新手,所以如果这是一个非常简单的问题我会道歉。我的数据结构如下:

> head(example)
  id var1
1  1    a
2  1    b
3  1    c
4  2    x
5  2    y
6  3    f
> 

我想将其折叠下来,因此每个id只有一个观察点,如下所示:

  id    var1 
 1    a, b, c 
 2    x, y 
 3    f

所以经过大量的搜索,实验和阅读类似的例子,我发现我可以使用以下方法实现这一目标:

new <-tapply(example$var1, example$id, unlist)

我查看数据,它看起来几乎像我期望的那样: it turned id into row.names and var1 into x

但是,我认为这很好,所以我会把它导出。但是,无论是csv,文本等,我总是得到同样的错误:

Error in .External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol,  :
  unimplemented type 'list' in 'EncodeElement'

我已尝试过toString(new$x)unlist(new$x)as.character(new$x)paste(new$x)以及其他几个代码段,但似乎没有解决错误。

看起来,由于数据可以正确地显示在查看器中,因此还应该有一种方法可以强制它以该格式导出到csv。或者我是否需要返回并更改我重塑数据的方式?

1 个答案:

答案 0 :(得分:0)

试试这个:

library(dplyr)
df %>%
  group_by(id) %>%
  summarise(text=paste(val1, collapse=','))