我有一个宽格式的数据集,由两行组成,一行带有变量名,另一行带有相应的值。变量代表1000个样本中个体的特征。例如,我有1000个变量关于每个个体的大小,然后1000个变量与高度,然后1000个变量与重量等。现在我想运行简单的回归(说卡路里消耗的重量),我能想到这样做的唯一方法是声明一个包含每个变量的1000个观测值的向量,例如:
regressor1 = c(mydata $ height0,mydata $ height1,mydata $ height2,mydata $ height3,... mydata $ height1000)
但鉴于我有几十个变量,每个变量包含1000个观察值,这将变得很麻烦。有没有办法用循环来做到这一点?
我还想过关于R的重塑选项,但这又会让我处于一个我需要输入几十次变量的位置。
感谢您的帮助。
答案 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,]