我正在寻找一种使用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/