R 创建一个重复的零和不均匀的“1”序列;“休息”;之间
我正在尝试使用Rstudio创建一个由1和0组成的序列。 我想要的输出是一个序列,首先是五个1,然后是六个0,然后是四个1,然后是六个0。然后,所有这些都应该重复,直到给定向量结束 结果应该是这样的: 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 希望有人有一个很好的解决方案,如果我有一些语法错误,请原谅 最好的, 血红蛋白R 创建一个重复的零和不均匀的“1”序列;“休息”;之间,r,R,我正在尝试使用Rstudio创建一个由1和0组成的序列。 我想要的输出是一个序列,首先是五个1,然后是六个0,然后是四个1,然后是六个0。然后,所有这些都应该重复,直到给定向量结束 结果应该是这样的: 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 希望有人有一个很好的解决方案,如果我有一些语法错误,请原谅 最好的, 血红蛋白 重复你的模式n次。你可以使用Map unlist(Map(function(x
重复你的模式n次。你可以使用
Map
unlist(Map(function(x, ...) c(rep(x, ...), rep(0, 6)), 1, times=length(v):1))
# [1] 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0
您也可以使用rev(seq(v))
来代替length(v):1
,但速度较慢
资料
v谢谢,正是我想要的!假设我想在数据帧中的列中重复此序列,我应该用什么替换“n”?@HB96该模式是否适合您的数据帧?还是会有多余的?谢谢你的回复。它将有一些多余的,所有这一切都取决于长度。我想我找到了一个解决方案,使用函数rep_len和length(dataframe$column)代替n。这样:rep_len(c(rep(1,5),rep(0,6),rep(1,4),rep(0,6)),length(dataframe$column))
unlist(Map(function(x, ...) c(rep(x, ...), rep(0, 6)), 1, times=length(v):1))
# [1] 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0
v <- c("Vector", "of", "specific", "length", "five")