R中的转置/重塑数据

时间:2016-03-23 19:13:59

标签: r reshape

我有一个宽格式的数据集,由两行组成,一行带有变量名,另一行带有相应的值。变量代表1000个样本中个体的特征。例如,我有1000个变量关于每个个体的大小,然后1000个变量与高度,然后1000个变量与重量等。现在我想运行简单的回归(说卡路里消耗的重量),我能想到这样做的唯一方法是声明一个包含每个变量的1000个观测值的向量,例如:

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

但鉴于我有几十个变量,每个变量包含1000个观察值,这将变得很麻烦。有没有办法用循环来做到这一点?

我还想过关于R的重塑选项,但这又会让我处于一个我需要输入几十次变量的位置。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

以下是我如何解决您的问题。 t()会将您的数据从多列转换为多行。

  

注意:t()可以与矩阵而不是数据框一起使用,我只是强制使用数据框来显示我的示例将与您的数据一起使用。

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

#2 Columns, many rows
t(x)

根据您的评论,您希望生成矢量。

如果您已转置:

regressor1 <- x[,1]

regressor2 <- x[,2]

如果你没有转置:

regressor1 <- x[1,]

regressor2 <- x[2,]