Generate a repeating sequence

后端 未结 6 1314
情深已故
情深已故 2021-01-14 01:27

I need to generate a vector of the following format using R:

1:10, 1:10, 11:20, 11:20, ... 121:130, 121:130

Is there an easier way than cre

相关标签:
6条回答
  • 2021-01-14 01:41

    Is this what you want?

    unlist(lapply(rep(seq(1, 121, by=10), each=2), function(x) seq(x, x+9)))
    
    0 讨论(0)
  • 2021-01-14 01:41

    Another way:

    x <- matrix(1:130, 10, 13)
    c(rbind(x, x))
    

    Possible more efficient version:

    x <- 1:130
    dim(x) <- c(10,13)
    c(rbind(x, x))
    
    0 讨论(0)
  • 2021-01-14 01:41

    Alternatively, you could use a combination of rep and outer, such as:

    c(outer(1:10,rep(0:12,each=2),function(x,y)10*y+x))
    
    0 讨论(0)
  • 2021-01-14 01:47

    I think this will do you.

    x <- ((0:12)*10)+1
    y <- x + 9
    
    repeatVectors <- function(x,y){
        rep(seq(x,y),2)
    }
    
    z <- mapply(repeatVectors, x,y)
    z <- as.vector(z)
    
    0 讨论(0)
  • 2021-01-14 01:59

    Also you could do:

    rep(1:10, 26) + rep(seq(0,120,10), each=20)
    
    0 讨论(0)
  • 2021-01-14 02:00

    A method using split is

    unlist(rep(split(seq_len(130), rep(1:13, each=10)), each=2), use.names=FALSE)
    
    0 讨论(0)
提交回复
热议问题