我用循环生成了一个数据帧,在循环之后我尝试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 ..如帖子顶部所述。
答案 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))