[R] list to data frame
M.Kondrin
mkondrin at hppi.troitsk.ru
Thu Jul 17 18:48:26 CEST 2003
Jesper Runge Madsen wrote:
> Dear R helpers
> I am trying to convert a list into a data frame but when I try, I get a
> stack overflow error (Error: protect(): stack overflow). My list contains
> about 17000 rows and looks like shown at the bottom. The reason that I
> want to convert it in to a data frame is that I want to export it to a
> mysql database with the dbWriteTable function.
>
> The function that I use is
> As.data.frame(listname)
>
> I hope someone can help me
>
>
>
> Cut out from the list
> structure(list("-9.000000" = 187, "9754.000000" = 130, "9755.000000" = 129,
> "9756.000000" = 125.5, "9757.000000" = 118.1111, "9762.000000" =
> 132.6667,
> "9763.000000" = 133, "9764.000000" = 130, "9766.000000" = 130.5,
> "9780.000000" = 160, "9787.000000" = 154, "9808.000000" = 147.8,
> "9811.000000" = 156.5, "9812.000000" = 154.3333, "9815.000000" = 141,
> "9819.000000" = 135, "9820.000000" = 141, "9821.000000" = 140.5,
> .
> .
> .
> .
> "525965.000000" = 76.4545), .Names = c("-9.000000", "9754.000000",
> "9755.000000", "9756.000000", "9757.000000", "9762.000000",
> "9763.000000",
> "9764.000000", "9766.000000", "9780.000000", "9787.000000",
> "9808.000000",
> "9811.000000", "9812.000000", "9815.000000", "9819.000000",
> "9820.000000",
> "9821.000000", "9822.000000", "9823.000000", "9824.000000",
> "9825.000000",
> .
> .
> .
> .
> "525863.000000", "525866.000000", "525867.000000", "525868.000000",
> "525869.000000", "525870.000000", "525951.000000", "525952.000000",
> "525954.000000", "525962.000000", "525964.000000", "525965.000000"
> ))
>
> /Jesper Runge Madsen
> Aalborg Universitet
> Denmark
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>
>
If your list were formatted like this one
>list("ColId1"=c(12,13,14),"ColId2"=c(34,56,78))->k
then
>as.data.frame(k)->g
would give desirable result
> as.data.frame(k)
a b
1 12 34
2 13 56
3 14 78
If it is related to the question you have asked earlier and you want to
convert matrix back to data.frame
> k<-cbind(c(1,2,3,4),c(1,2,3,4))
> k
[,1] [,2]
[1,] 1 1
[2,] 2 2
[3,] 3 3
[4,] 4 4
> class(k)
[1] "matrix"
> as.data.frame(k)->k2
> names(k2)<-c("ColId1","ColId2")
to insert suitable column names instead default ones
> k2
ColId1 ColId2
1 1 1
2 2 2
3 3 3
4 4 4
> class(k2)
[1] "data.frame"
More information about the R-help
mailing list