如何将信息从rle转换为数据框

时间:2015-06-30 13:17:33

标签: r

我想将R中“rle”函数中包含的信息转换为数据框,但无法找到。例如,对于向量

x <- c(1,1,1,2,2,3,4,4,4)

我想要一个包含两列1 2 3 43 2 1 3

的数据框

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:9)

Use unclass to remove the rle class. Then you can just use data.frame on the resulting list.

data.frame(unclass(rle(x)))
##   lengths values
## 1       3      1
## 2       2      2
## 3       1      3
## 4       3      4

答案 1 :(得分:3)

You can do it direclty with the data.frame function. rle actually returns a list of two components (lengths and values).

rleX
data.frame(values = rleX$values, lengths = rleX$lengths)

答案 2 :(得分:1)

Try this:

data.frame(table(x))

  x Freq
1 1    3
2 2    2
3 3    1
4 4    3

答案 3 :(得分:0)

您可以使用此简单功能将其转换为数据框

data <- with(rle(x), data.frame(values, lengths))