Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
How to split a vector by equal and different number of elements in R?
To split a vector by equal and different number of elements, we can use split function along with rep function. The rep function will define the repetition of the divisions for equal as well as different number of elements. For example, if a vector say x contains fifty values then splitting of x with different number of elements as 20, 10, 10, 5, 5 this can be done by using the command split(x,rep(1:5,c(20,10,10,5,5))).
Example1
> x1<-rnorm(20) > x1
Output
[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 <p>[13] -1.72088389 -0.20699097 -0.37173907 0.03042574 -1.88779297 -1.49188883</p><p>[19] 1.76346672 -0.78819850</p>
Example
> split(x1,rep(1:5,c(4,4,4,4,4)))
Output
$`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
Example2
> x2<-rnorm(80) > x2
Output
[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
Example
> split(x2,rep(1:8,c(10,10,10,10,10,10,10,10)))
Output
$`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
Example3
> x3<-rpois(100,5) > x3
Output
[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
Example
> split(x3,rep(1:5,c(10,25,25,20,20)))
Output
$`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
Advertisements
