You can use the reshape function from the base package that reshapes a data frame between ‘wide’ format with repeated measurements in separate columns of the same record and ‘long’ format with the repeated measurements in separate records.
In your case:
set.seed(45)
dat1 <- data.frame(
name = rep(c("firstName", "secondName"), each=4),
numbers = rep(1:4, 2),
value = rnorm(8)
)
reshape(dat1, idvar = "name", timevar = "numbers", direction = "wide")
Where:
Idvar- the names of one or more variables in long format that identify multiple records
timevar - the variable in long format that differentiates multiple records
direction - either “wide” or “long”
Output:
name value.1 value.2 value.3 value.4
1 firstName 0.3407997 -0.7033403 -0.3795377 -0.7460474
5 secondName -0.8981073 -0.3347941 -0.5013782 -0.1745357