我无法弄清楚如何产生从向量3到50其中的偶数被复制两次,不均匀号码一次,使得载体可以
3, 4, 4, 5, 6, 6, 7, 8, 8, 9, ..., 50, 50
Run Code Online (Sandbox Code Playgroud)
Ric*_*ven 10
rep() 会做的.
x <- 3:50
rep(x, (x %% 2 == 0) + 1L)
# [1] 3 4 4 5 6 6 7 8 8 9 10 10 11 12 12 13 14 14 15 16 16 17
# [23] 18 18 19 20 20 21 22 22 23 24 24 25 26 26 27 28 28 29 30 30 31 32
# [45] 32 33 34 34 35 36 36 37 38 38 39 40 40 41 42 42 43 44 44 45 46 46
# [67] 47 48 48 49 50 50
Run Code Online (Sandbox Code Playgroud)
x %% 2 == 0给出一个逻辑向量,指示哪些元素x是偶数.由于整数值TRUE和FALSE是1和0分别加1 x %% 2 == 0给了我们,我们需要为我们的矢量times的说法rep().
如果我们打高尔夫球,我们可以缩短比赛时间rep(x, (!x %% 2) + 1L).
请注意,如果我们的原始向量不是连续的,并且我们仍希望复制偶数值,则此方法也很有用.
v <- c(1, 2, 4, 3, 6)
rep(v, (!v %% 2) + 1L)
# [1] 1 2 2 4 4 3 6 6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |