我开始分析论文的数据。我首先需要将连续出现的字符串计为一个。这是一个示例向量:
test <- c("vv","vv","vv","bb","bb","bb","","cc","cc","vv","vv")
我想简单地提取唯一值,如unix命令uniq。所以预期的输出将是一个向量:
“VV”, “BB”, “CC”, “VV”
我看了rle函数,看起来很好,但是如何将rle的输出作为向量?我似乎不理解rle类......
> rle(test)
Run Length Encoding
lengths: int [1:5] 3 3 1 2 2
values : chr [1:5] "vv" "bb" "" "cc" "vv"
如何获得rle输出的值的一个向量,另一个为长度?希望我能让自己明白......
再次感谢您的帮助!
答案 0 :(得分:2)
rle()
返回类"rle"
的两元素列表;正如@gsk指出的那样,你可以使用普通的列表索引结构来访问组件向量。
另外,试试这个,将rle
的结果放入更熟悉的格式:
as.data.frame(rev(unclass(rle(test))))
# values lengths
# 1 vv 3
# 2 bb 3
# 3 1
# 4 cc 2
# 5 vv 2
答案 1 :(得分:2)
来源:http://www.sigmafield.org/2009/09/22/r-function-of-the-day-rle
解决方案:rle(test)$values
他们使用:coin.rle <- rle(coin)
和coin.rle$values
因此,rle(test)$values
应该有用。