我想将R中“rle”函数中包含的信息转换为数据框,但无法找到。例如,对于向量
x <- c(1,1,1,2,2,3,4,4,4)
我想要一个包含两列1 2 3 4
和3 2 1 3
非常感谢任何帮助!
答案 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))