将数据帧写入csv,而每列都是列表

时间:2015-11-05 05:53:50

标签: r

我用循环生成了一个数据帧,在循环之后我尝试write.csv它。

然而,当我str(df)时,它显示了这一点:

 $ 2014:List of 11
  ..$ : int 3627
  ..$ : int 6462
  ..$ : int 2063
  ..$ : int 586
  ..$ : int 388
  ..$ : num 0.77
  ..$ : num 0.52
  ..$ : num 0.485
  ..$ : num 0.125
  ..$ : num 0.103
  ..$ : int 4326
 $ 2015-08:List of 11
  ..$ : int 3697
  ..$ : int 4279
  ..$ : int 1876
  ..$ : int 358
  ..$ : int 356
  ..$ : num 0.79
  ..$ : num 0.49
  ..$ : num 0.89
  ..$ : num 0.24
  ..$ : num 0.07
  ..$ : int 30166

当我尝试write.csv时,它说

  

.External2中的错误(C_writetable,x,file,nrow(x),p,rnames,sep,eol,:         未实现的类型' list'在&EnquestElement'

那我应该怎么解决这个问题呢?我认为这主要是因为每列都是列表(尽管每列都有1行和11列)。

由于

更新

这是循环生成结果部分:

c1<-sqldf("select count(*) from output1 where a = 1")
c2<-sqldf("select count(*) from output1 where b = 1")
c3<-sqldf("select count(*) from output1 where c = 1")
c4<-sqldf("select count(*) from output1 where d = 1")
c5<-sqldf("select count(*) from output1 where e = 1")

  d1<-c1-c2
  d2<-c2-c3
  d3<-c3-c4
  d4<-c4-c5
  d5<-c1-d1-d2-d3-d4

  p1<-d1/c1
  p2<-d2/c1
  p3<-d3/c1
  p4<-d4/c1
  p5<-d5/c1

  df[,i]<-as.data.frame(matrix(c(d1,d2,d3,d4,d5,p1,p2,p3,p4,p5,c1), ncol=1))
  colnames(d)[i]<-paste(dates[i])  

c1到c5是数字。

并且生成的df,class(df)是data.frame,但是class(df [,i])是list ..如帖子顶部所述。

1 个答案:

答案 0 :(得分:0)

尝试

df2 <- data.frame(lapply(df, unlist))
write.csv(df2, 'yourfile.csv', row.names=FALSE, quote=FALSE)

数据

df <- list(`2014`= list(3627, 6462, 2063), `2015`=list(3697, 4279, 1876))