How do you create vectors with specific intervals in R?

前端 未结 3 700
南旧
南旧 2020-12-02 20:12

I have a question about creating vectors. If I do a <- 1:10, \"a\" has the values 1,2,3,4,5,6,7,8,9,10.

My question is how do you create a vector wit

相关标签:
3条回答
  • 2020-12-02 20:40

    Use the code

    x = seq(0,100,5) #this means (starting number, ending number, interval)
    

    the output will be

    [1]   0   5  10  15  20  25  30  35  40  45  50  55  60  65  70  75
    [17]  80  85  90  95 100
    
    0 讨论(0)
  • 2020-12-02 20:45

    Usually, we want to divide our vector into a number of intervals. In this case, you can use a function where (a) is a vector and (b) is the number of intervals. (Let's suppose you want 4 intervals)

    a <- 1:10
    b <- 4
    
    FunctionIntervalM <- function(a,b) {
      seq(from=min(a), to = max(a), by = (max(a)-min(a))/b)
    }
    
    FunctionIntervalM(a,b)
    # 1.00  3.25  5.50  7.75 10.00
    

    Therefore you have 4 intervals:

    1.00 - 3.25 
    3.25 - 5.50
    5.50 - 7.75
    7.75 - 10.00
    

    You can also use a cut function

      cut(a, 4)
    
    # (0.991,3.25] (0.991,3.25] (0.991,3.25] (3.25,5.5]   (3.25,5.5]   (5.5,7.75]  
    # (5.5,7.75]   (7.75,10]    (7.75,10]    (7.75,10]   
    #Levels: (0.991,3.25] (3.25,5.5] (5.5,7.75] (7.75,10]
    
    0 讨论(0)
  • 2020-12-02 20:46

    In R the equivalent function is seq and you can use it with the option by:

    seq(from = 5, to = 100, by = 5)
    # [1]   5  10  15  20  25  30  35  40  45  50  55  60  65  70  75  80  85  90  95 100
    

    In addition to by you can also have other options such as length.out and along.with.

    length.out: If you want to get a total of 10 numbers between 0 and 1, for example:

    seq(0, 1, length.out = 10)
    # gives 10 equally spaced numbers from 0 to 1
    

    along.with: It takes the length of the vector you supply as input and provides a vector from 1:length(input).

    seq(along.with=c(10,20,30))
    # [1] 1 2 3
    

    Although, instead of using the along.with option, it is recommended to use seq_along in this case. From the documentation for ?seq

    seq is generic, and only the default method is described here. Note that it dispatches on the class of the first argument irrespective of argument names. This can have unintended consequences if it is called with just one argument intending this to be taken as along.with: it is much better to use seq_along in that case.

    seq_along: Instead of seq(along.with(.))

    seq_along(c(10,20,30))
    # [1] 1 2 3
    

    Hope this helps.

    0 讨论(0)
提交回复
热议问题