该rep函数可用于以相当灵活的方式重复向量。
# repeat counting numbers, 1 through 5 twice rep(1:5, 2) [1] 1 2 3 4 5 1 2 3 4 5 # repeat vector with incomplete recycling rep(1:5, 2, length.out=7) [1] 1 2 3 4 5 1 2
每个参数对于将观察/实验单位的统计向量扩展为data.frame具有这些单位的重复观测的向量特别有用。
# same except repeat each integer next to each other rep(1:5, each=2) [1] 1 1 2 2 3 3 4 4 5 5
rep关于扩展到这样的数据结构的一个很好的功能是,可以通过将矢量替换为长度参数来指示将矢量扩展到不平衡面板,该矢量规定了重复矢量中每个元素的次数:
# automated length repetition rep(1:5, 1:5) [1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 # hand-fed repetition length vector rep(1:5, c(1,1,1,2,2)) [1] 1 2 3 4 4 5 5
这应该暴露出允许外部函数提供第二个参数的可能性,rep以便动态构造根据数据扩展的向量。
与一样seq,更快,更简化的reparerep_len和版本rep.int。这些删除了一些rep保持不变的属性,因此在关注速度且不需要重复矢量的其他情况下可能最有用。
# repeat counting numbers, 1 through 5 twice rep.int(1:5, 2) [1] 1 2 3 4 5 1 2 3 4 5 # repeat vector with incomplete recycling rep_len(1:5, length.out=7) [1] 1 2 3 4 5 1 2