我开始为我的论文分析数据。我首先需要将连续出现的字符串算作一个字符串。下面是一个示例向量:
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输出值的一个向量和长度的另一个向量?希望我说得够清楚了。
再次感谢您的帮助!
发布于 2012-06-17 02:47:22
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发布于 2012-06-17 02:52:26
来源: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应该可以工作。
https://stackoverflow.com/questions/11066080
复制相似问题