cannot coerce class '"rle"' into a data.frame
On Oct 16, 2012, at 12:54 PM, Sam Steingold <sds at gnu.org> wrote:
why?
rle
Run Length Encoding lengths: int [1:1650061] 2 2 8 2 4 5 6 3 26 46 ... values : chr [1:1650061] "4bbf9e94cbceb70c BG bg" "4fbbf2c67e0fb867 SK sk" ...
as.data.frame(rle)
Error in as.data.frame.default(vertices.rle) : cannot coerce class '"rle"' into a data.frame it seems that rle.df <- data.frame(values=rle$values,length=rle$length) works and DTRT.
It is telling you that there is not an as.data.frame() method for objects of class 'rle': x <- rev(rep(6:10, 1:5)) RES <- rle(x)
str(RES)
List of 2 $ lengths: int [1:5] 5 4 3 2 1 $ values : int [1:5] 10 9 8 7 6 - attr(*, "class")= chr "rle" Since 'RES' is a list with a class attribute, you can unclass() it and then coerce to a data.frame:
as.data.frame(unclass(RES))
lengths values 1 5 10 2 4 9 3 3 8 4 2 7 5 1 6
str(as.data.frame(unclass(RES)))
'data.frame': 5 obs. of 2 variables: $ lengths: int 5 4 3 2 1 $ values : int 10 9 8 7 6 Regards, Marc Schwartz