如何在 R 中按相等和不同数量的元素分割向量?
要按相等和不同数量的元素分割一个向量,我们可以使用 split 函数和 rep 函数。rep 函数将定义相等以及不同数量的元素的分割重复。例如,如果一个向量(比如说 x)包含 50 个值,那么将 x 分割为 20、10、10、5、5 等不同数量的元素可以通过使用命令 split(x,rep(1:5,c(20,10,10,5,5))) 来实现。
实例 1
> x1<-rnorm(20) > x1
输出
[1] 1.30316414 -0.80488291 0.23170812 -0.07318560 -0.73388857 -0.85952329 [7] -0.88713465 -0.26618866 1.45634603 0.31282735 1.39285785 0.32501145[13] -1.72088389 -0.20699097 -0.37173907 0.03042574 -1.88779297 -1.49188883
[19] 1.76346672 -0.78819850
实例
> split(x1,rep(1:5,c(4,4,4,4,4)))
输出
$`1` [1] 1.3031641 -0.8048829 0.2317081 -0.0731856 $`2` [1] -0.7338886 -0.8595233 -0.8871347 -0.2661887 $`3` [1] 1.4563460 0.3128273 1.3928578 0.3250114 $`4` [1] -1.72088389 -0.20699097 -0.37173907 0.03042574 $`5` [1] -1.8877930 -1.4918888 1.7634667 -0.7881985
实例 2
> x2<-rnorm(80) > x2
输出
[1] 1.11014501 -0.30485929 1.19911840 1.01925016 -2.74900977 -0.65568943 [7] 1.23454821 -0.91710842 2.25818571 0.11509990 0.60064320 -0.99898231 [13] -0.90873904 0.68738377 0.50206863 0.71867815 -0.17149018 -0.19056878 [19] -0.26320262 0.11085357 -0.87968483 1.10847267 -0.88684214 0.25501541 [25] 0.17070674 0.87421060 -0.51739525 -0.15134489 -0.84236650 0.50036499 [31] -1.07865023 -0.14798676 0.26203826 1.16376336 -0.98983205 2.49089629 [37] 0.29128935 1.27024917 0.49313043 0.90345654 0.36708891 1.16796991 [43] -0.82016835 0.30527505 -1.07100642 0.42140017 0.49116119 -1.70181435 [49] 0.85880415 -1.72676868 0.69970268 0.72310038 -0.55340423 -1.93115027 [55] -0.66841699 1.12353618 0.58422511 0.49507549 -0.48937123 -0.45051950 [61] -0.68090745 0.13435125 -0.51724884 1.24981341 0.13391069 0.12207344 [67] 0.20733945 0.74509319 0.31462239 1.07309023 -1.26986929 0.42222945 [73] 0.19691607 -0.15895825 0.39972349 -1.35150483 0.66675370 -0.05661676 [79] 0.64220780 0.20113633
实例
> split(x2,rep(1:8,c(10,10,10,10,10,10,10,10)))
输出
$`1` [1] 1.1101450 -0.3048593 1.1991184 1.0192502 -2.7490098 -0.6556894 [7] 1.2345482 -0.9171084 2.2581857 0.1150999 $`2` [1] 0.6006432 -0.9989823 -0.9087390 0.6873838 0.5020686 0.7186782 [7] -0.1714902 -0.1905688 -0.2632026 0.1108536 $`3` [1] -0.8796848 1.1084727 -0.8868421 0.2550154 0.1707067 0.8742106 [7] -0.5173952 -0.1513449 -0.8423665 0.5003650 $`4` [1] -1.0786502 -0.1479868 0.2620383 1.1637634 -0.9898321 2.4908963 [7] 0.2912894 1.2702492 0.4931304 0.9034565 $`5` [1] 0.3670889 1.1679699 -0.8201684 0.3052750 -1.0710064 0.4214002 [7] 0.4911612 -1.7018144 0.8588042 -1.7267687 $`6` [1] 0.6997027 0.7231004 -0.5534042 -1.9311503 -0.6684170 1.1235362 [7] 0.5842251 0.4950755 -0.4893712 -0.4505195 $`7` [1] -0.6809075 0.1343513 -0.5172488 1.2498134 0.1339107 0.1220734 [7] 0.2073394 0.7450932 0.3146224 1.0730902 $`8` [1] -1.26986929 0.42222945 0.19691607 -0.15895825 0.39972349 -1.35150483 [7] 0.66675370 -0.05661676 0.64220780 0.20113633
实例 3
> x3<-rpois(100,5) > x3
输出
[1] 3 7 3 1 6 2 7 6 7 7 3 4 4 7 2 3 4 9 5 8 6 3 5 4 4 [26] 5 9 7 2 4 5 6 7 5 4 6 5 5 7 5 2 2 6 3 6 5 2 5 3 6 [51] 4 5 6 0 9 4 4 3 4 5 2 7 4 9 4 7 7 2 6 5 8 4 4 2 9 [76] 3 7 8 5 3 4 5 6 7 4 7 7 6 4 6 1 7 7 4 6 5 5 5 11 1
实例
> split(x3,rep(1:5,c(10,25,25,20,20)))
输出
$`1` [1] 3 7 3 1 6 2 7 6 7 7 $`2` [1] 3 4 4 7 2 3 4 9 5 8 6 3 5 4 4 5 9 7 2 4 5 6 7 5 4 $`3` [1] 6 5 5 7 5 2 2 6 3 6 5 2 5 3 6 4 5 6 0 9 4 4 3 4 5 $`4` [1] 2 7 4 9 4 7 7 2 6 5 8 4 4 2 9 3 7 8 5 3 $`5` [1] 4 5 6 7 4 7 7 6 4 6 1 7 7 4 6 5 5 5 11 1
广告