输出具有重复值的向量

Sci*_*ist 2 r vector

为了保持我的脚本记录干净,我想用 rep() 输出向量输入而不是链中的重复值。请参阅下面的示例,使用 dput():

v<-c(rep(1,2), rep(2,4), rep(NA,5))
dput(v)
>c(1, 1, 2, 2, 2, 2, NA, NA, NA, NA, NA)
unknown_function(v)
>c(rep(1,2), rep(2,4), rep(NA,5))
Run Code Online (Sandbox Code Playgroud)

当然微不足道,但我找不到任何简单的解决方案。请对 unknown_function() 提出建议?

G. *_*eck 5

rle 将计算值和长度,然后我们可以将它们粘贴在一起:

with(rle(format(v)), paste0("c(", toString(paste0("rep(", values, ",", lengths, ")")), ")"))
## [1] "c(rep( 1,2), rep( 2,4), rep(NA,5))"
Run Code Online (Sandbox Code Playgroud)