假设你有一个这样的矢量:
v <- c(1,1,1,2,2,2,2,1,1,3,3,3,3)
如何最好地将其缩减为像这样的data.frame?
v.df <- data.frame(value=c(1,2,1,3),repetitions=c(3,4,2,4))
在过程语言中,我可能只是循环遍历并构建data.frame,但是在R中使用大型数据集这样的方法效率很低。有什么建议吗?
答案 0 :(得分:12)
或更简单
data.frame(rle(v)[])
答案 1 :(得分:8)
with(rle(v), data.frame(values, lengths))
应该能满足你的需求。
values lengths
1 3
2 4
1 2
3 4