showkey
showkey

Reputation: 348

How to split the vector into small group in R?

x<-rnorm(5000,5,3)

How can i split x into 500 groups ,there are ten numbers in every group ?

Upvotes: 0

Views: 320

Answers (2)

Suchana
Suchana

Reputation: 16

Are you looking for something like this :

# create a vector of group labels

group <- rep(sample(1:500,replace=F,size=500),10)
group.name <- paste("group",as.character(group),sep=" ")

# create a dataframe of groups and corresponding values
df <- data.frame(group=group.name,value=rnorm(5000,5,3))

# check the dataframe
str(df)
'data.frame':   5000 obs. of  2 variables:
 $ group: Factor w/ 500 levels "group 1","group 10",..: 271 115 404 252 138 243 375 308 434 16 ...
 $ value: num  8.55 10.14 3.71 8.79 4.17 ...

head(df)
      group     value
1 group 342  8.547406
2 group 201 10.135465
3 group 462  3.713305
4 group 325  8.786934
5 group 222  4.171373
6 group 317  3.478123

Upvotes: 0

Carl Witthoft
Carl Witthoft

Reputation: 21492

Answer #1:

x<-rnorm(5000,5,3)
y<-matrix(nr=500,nc=10)
y[]<-x

Answer #2: Skip the first step and just create the matrix directly.

y<-matrix(rnorm(5000,5,3),nr=500,nc=10)

Upvotes: 4

Related Questions