2016-03-23 38 views
-1

我有一个宽格式的数据集,由两行组成,其中一行包含变量名称,另一行包含相应的值。这些变量代表1000个样本中个体的特征。例如,我有1000个变量,分别是每个个体的大小,然后1000个变量与身高,1000个变量与体重等。现在我想运行简单的回归(说重量卡路里消耗),我可以想到这样做的唯一方法是声明一个向量,其中包含每个变量1000个观察值,例如说:例如:R中的转置/重整数据

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

但是假设我有几十个变量,每个变量都包含1000个观察值,这将变得很麻烦。有没有办法做到这一点与循环?

我也想过一个关于R的重塑选项,但是这又会让我处于一个我必须输入1000次变量几十次的位置。

谢谢你的帮助。

+0

我觉得像'T()'会做到这一点,你尝试过什么? – Badger

+0

重塑可能可以做你正在寻找的东西:[帮助页面](http://www.statmethods.net/management/reshape.html) – desc

+0

t()的问题是,我然后得到所有我的变量堆积在彼此顶部。然后我仍然无法运行回归。我希望将1000个观察值中的每一个分组为一列(或一个向量)。我想知道是否有一种方法(也许通过循环)将每个1000分组成一个向量或列。 –

回答

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,] 
+0

这工作!非常感谢!! –