如何用R中大小可变的重复元素创建一个大向量?

要创建一个大小可变的重复元素的大矢量,我们可以将rep函数与逻辑矢量一起用作索引。包含TRUE或FALSE的逻辑向量将定义在rep函数帮助下创建的向量中值的选择或省略,如以下示例所示。如果使用rep创建的向量大于逻辑向量,则逻辑向量将被回收。

例1

x1<−rep(1:100,each=2)[c(TRUE,FALSE)]
x1

示例

x1<−rep(1:100,each=2)[c(TRUE,TRUE)]
x1
输出结果
[1] 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9
[19] 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18
[37] 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27
[55] 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36
[73] 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45
[91] 46 46 47 47 48 48 49 49 50 50 51 51 52 52 53 53 54 54
[109] 55 55 56 56 57 57 58 58 59 59 60 60 61 61 62 62 63 63
[127] 64 64 65 65 66 66 67 67 68 68 69 69 70 70 71 71 72 72
[145] 73 73 74 74 75 75 76 76 77 77 78 78 79 79 80 80 81 81
[163] 82 82 83 83 84 84 85 85 86 86 87 87 88 88 89 89 90 90
[181] 91 91 92 92 93 93 94 94 95 95 96 96 97 97 98 98 99 99
[199] 100 100

示例

x1<−rep(1:100,each=2)[c(TRUE,TRUE,FALSE)]
x1
输出结果
[1] 1 1 2 3 4 4 5 6 7 7 8 9 10 10 11 12 13 13
[19] 14 15 16 16 17 18 19 19 20 21 22 22 23 24 25 25 26 27
[37] 28 28 29 30 31 31 32 33 34 34 35 36 37 37 38 39 40 40
[55] 41 42 43 43 44 45 46 46 47 48 49 49 50 51 52 52 53 54
[73] 55 55 56 57 58 58 59 60 61 61 62 63 64 64 65 66 67 67
[91] 68 69 70 70 71 72 73 73 74 75 76 76 77 78 79 79 80 81
[109] 82 82 83 84 85 85 86 87 88 88 89 90 91 91 92 93 94 94
[127] 95 96 97 97 98 99 100 100

例2

x2<−rep(0:1,each=100)[c(TRUE,TRUE,FALSE,TRUE,FALSE)]
x2
输出结果
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[75] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[112] 1 1 1 1 1 1 1 1 1

范例3

x3<−rep(1:50,each=5)[c(TRUE,FALSE,TRUE,TRUE,TRUE)]
x3
输出结果
[1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7
[26] 7 7 7 8 8 8 8 9 9 9 9 10 10 10 10 11 11 11 11 12 12 12 12 13 13
[51] 13 13 14 14 14 14 15 15 15 15 16 16 16 16 17 17 17 17 18 18 18 18 19 19 19
[76] 19 20 20 20 20 21 21 21 21 22 22 22 22 23 23 23 23 24 24 24 24 25 25 25 25
[101] 26 26 26 26 27 27 27 27 28 28 28 28 29 29 29 29 30 30 30 30 31 31 31 31 32
[126] 32 32 32 33 33 33 33 34 34 34 34 35 35 35 35 36 36 36 36 37 37 37 37 38 38
[151] 38 38 39 39 39 39 40 40 40 40 41 41 41 41 42 42 42 42 43 43 43 43 44 44 44
[176] 44 45 45 45 45 46 46 46 46 47 47 47 47 48 48 48 48 49 49 49 49 50 50 50 50

例子4

x4<−rep(1:100,each=5)[c(TRUE,FALSE,TRUE)]
x4
输出结果
[1] 1 1 1 2 2 2 2 3 3 3 4 4 4 5 5 5 5 6
[19] 6 6 7 7 7 8 8 8 8 9 9 9 10 10 10 11 11 11
[37] 11 12 12 12 13 13 13 14 14 14 14 15 15 15 16 16 16 17
[55] 17 17 17 18 18 18 19 19 19 20 20 20 20 21 21 21 22 22
[73] 22 23 23 23 23 24 24 24 25 25 25 26 26 26 26 27 27 27
[91] 28 28 28 29 29 29 29 30 30 30 31 31 31 32 32 32 32 33
[109] 33 33 34 34 34 35 35 35 35 36 36 36 37 37 37 38 38 38
[127] 38 39 39 39 40 40 40 41 41 41 41 42 42 42 43 43 43 44
[145] 44 44 44 45 45 45 46 46 46 47 47 47 47 48 48 48 49 49
[163] 49 50 50 50 50 51 51 51 52 52 52 53 53 53 53 54 54 54
[181] 55 55 55 56 56 56 56 57 57 57 58 58 58 59 59 59 59 60
[199] 60 60 61 61 61 62 62 62 62 63 63 63 64 64 64 65 65 65
[217] 65 66 66 66 67 67 67 68 68 68 68 69 69 69 70 70 70 71
[235] 71 71 71 72 72 72 73 73 73 74 74 74 74 75 75 75 76 76
[253] 76 77 77 77 77 78 78 78 79 79 79 80 80 80 80 81 81 81
[271] 82 82 82 83 83 83 83 84 84 84 85 85 85 86 86 86 86 87
[289] 87 87 88 88 88 89 89 89 89 90 90 90 91 91 91 92 92 92
[307] 92 93 93 93 94 94 94 95 95 95 95 96 96 96 97 97 97 98
[325] 98 98 98 99 99 99 100 100 100