簡體   English   中英

R - 創建一個奇數序列,后跟相同間隔的偶數序列

[英]R - create a sequence of odd numbers followed by the sequence of even numbers on the same interval

所以我基本上是在尋找一種更有效的方法來做到這一點:

c(seq(1, 5, 2), seq(2, 6, 2))

是否有一個更簡單的 function 內置於 R 或一些允許我只指定一個間隔(從 1 到 6;而不必指定從 1 到 5 和從 2 到 6)的包中,但是對數字進行排序所有奇數都出現在偶數之前?

只需連接僅包含原始數據奇數的子數據和包含剩余偶數的其他子數據。

在下面,您可以獲得原始數據x1 ,它由均值為 8 的泊松分布中的 10 個整數組成( rpois(n = 10, lambda = 8) ),並合並奇數的子數據( x1[x1 %% 2 == 1] )和偶數( x1[x1 %% 2 == 0] )。

## To prepare data
x1 <- rpois(n = 10, lambda = 8)
x1

## To sort the data so that odd numbers come earlier
c(x1[x1 %% 2 == 1], x1[x1 %% 2 == 0])

您可以使用sequence function的第一個參數是每個序列的長度, from是起點, by是區間。

sequence(c(3, 3), from = c(1, 2), by = 2)
#[1] 1 3 5 2 4 6

或者,作為符合您要求的 function:

seqOrdered <- function(from = 1, to){
  n = ceiling((to - from) / 2)
  sequence(c(n, n), from = c(from, from + 1), by = 2)
}

seqOrdered(1, 6)
#[1] 1 3 5 2 4 6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM