简体   繁体   中英

Transpose/Reshape Data in R

I have a data set in a wide format, consisting of two rows, one with the variable names and one with the corresponding values. The variables represent characteristics of individuals from a sample of size 1000. For instance I have 1000 variables regarding the size of each individual, then 1000 variables with the height, then 1000 variables with the weight etc. Now I would like to run simple regressions (say weight on calorie consumption), the only way I can think of doing this is to declare a vector that contains the 1000 observations of each variable, say for instance:

regressor1=c(mydata$height0, mydata$height1, mydata$height2, mydata$height3, ... mydata$height1000)

But given that I have a few dozen variables and each containing 1000 observations this will become cumbersome. Is there a way to do this with a loop?

I have also thought a about the reshape options of R, but this again will put me in a position where I have to type 1000 variables a few dozen times.

Thank you for your help.

Here is how I would go about your issue. t() will transpose the data for you from many columns to many rows.

Note: t() can be used with a matrix rather than a data frame, I simply coerced to data frame to show my example will work with your data.

# Many columns, 2 rows
x <- as.data.frame(matrix(nrow=2,ncol=1000,seq(1:2000)))

#2 Columns, many rows
t(x)

Based on your comments you are looking to generate vectors.

If you have transposed:

regressor1 <- x[,1]

regressor2 <- x[,2]

If you have not transposed:

regressor1 <- x[1,]

regressor2 <- x[2,]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM