我正在寻找一种使用R将 vector v <- c(a,a,a,b,a,b,b,c,b)转换为压缩 vector res <- c(a3,b1,a1,b2,c1,b1)的有效方法。

{a,b,c}也可以更长一些,例如{alfonso,berta,cesar}。

最佳答案

同时需要rle和paste0,但首先需要代码示例:

v <- scan(text= "a,a,a,b,a,b,b,c,b", sep=",", what="")
#Read 9 items
 v
[1] "a" "a" "a" "b" "a" "b" "b" "c" "b"
 rle(v)
#Run Length Encoding
#  lengths: int [1:6] 3 1 1 2 1 1
#  values : chr [1:6] "a" "b" "a" "b" "c" "b"
 paste0( rle(v)$values, rle(v)$lengths)
##
[1] "a3" "b1" "a1" "b2" "c1" "b1"

关于r - 向量中的R个重现实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49741601/

10-12 13:59