【发布时间】:2011-12-22 03:28:36
【问题描述】:
我正在尝试重塑数据框:
目前看起来是这样的:
ID | Gender |A1 | A2 | A3 | B1 | B2 | B3
ID_1 | m | 3 | 3 | 3 | 2 | 3 | 2
ID_2 | f | 1 | 1 | 1 | 4 | 4 | 4
我想要类似的东西:
ID | Gender | A1 | A2 | A3
ID_1 | m | 3 | 3 | 3 <- this would be columns A1 - A3 for ID 1
ID_1 | m | 2 | 2 | 2 <- this would be columns B1 - B3 for ID 1
ID_2 | f | 1 | 1 | 1 <- this would be columns A1 - A3 for ID 2
ID_2 | f | 4 | 4 | 4 <- this would be columns B1 - B3 for ID 2
(A1 和 B1 / A2 和 B2 是相同的变量(就内容而言),因此例如:A1 和 B1 将是测试 1 的结果的变量,而 A2 和 B2 都包含测试的结果2. 因此,为了评估它,我需要将 Test1 的所有结果放在一列中,将 Test 2 的所有结果放在另一列中。 我试图用“融化”来解决这个问题,但它只会一个一个地融化数据帧,而不是块。 (因为我需要保持前 2 列的原样,并且只重新排列最后 4 列,但作为三个块) 还有其他想法吗?谢谢!
【问题讨论】:
-
告诉
melt前两列是id变量,即id.vars=... -
第一部分有效,保留第一列没问题,但是我不知道如何告诉 R 它应该重新排列所有的 Test1´s (A1, B1) / Test2´ s (A2, B2) 等在一列中。所以我最终得到三列而不是六列(示例二)......
-
@Elisa,这看起来像是您几个小时前创建的问题的副本。如果是,请关闭另一个。
-
是的,有些人努力为那个答案...(顺便说一句,这个要好得多,您只需几行代码就可以得到非常简单的答案)...你也可能想为您的问题中的列添加名称。
-
感谢您的所有想法。我会尝试它们,如果它有效,我会向你报告。原始数据框有更多的列和非常混乱的列名。所以我可能必须在重塑数据之前重命名它们
标签: r dataframe reshape chunks data-management