【问题标题】:Transpose/Reshape Data in RR中的转置/重塑数据
【发布时间】:2016-03-23 19:13:58
【问题描述】:

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

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

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

我也考虑过 R 的重塑选项,但这又会让我不得不输入 1000 个变量几十次。

感谢您的帮助。

【问题讨论】:

  • 我觉得t() 会这样做,你有什么尝试?
  • reshape 可能会满足您的需求:help page
  • t() 的问题是我将所有变量堆叠在一起。然后我仍然无法运行回归。我希望将 1000 个观察值中的每一个分组到一列(或一个向量)中。我想知道是否有一种方法(可能通过循环)将每 1000 个分组到一个向量或列中。
  • 我的 reshape 问题是,我仍然需要输入所有变量名称。
  • 所以您在寻找mydata[1,]?然后,您将简单地获得第一行的向量,以及第二行的 mydata[2,]。与其说是数据导航,不如说是转置数据。

标签: r reshape


【解决方案1】:

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

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

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

#2 Columns, many rows
t(x)

根据您希望生成向量的 cmets。

如果你已经换位了:

regressor1 <- x[,1]

regressor2 <- x[,2]

如果你没有换位:

regressor1 <- x[1,]

regressor2 <- x[2,]

【讨论】:

    猜你喜欢
    • 2017-09-06
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 2017-11-04
    • 1970-01-01
    相关资源
    最近更新 更多