【发布时间】:2016-12-20 18:18:00
【问题描述】:
我正在尝试转换一个数据框,其中个人按家庭 ID 分组。而不是:
FAMID1 ID1 Age Sex Q1 Q2 ......
21 1 18 M T 4
21 2 21 F F 2
22 1 13 F T 3
22 2 16 F F 1
23 1 18 M T 3
23 2 18 M T 3
我想得到:
FAMID ID1 ID2 Age1 Age2 Sex1 Sex2 Q1.1. Q1.2....
21 1 2 18 21 M F T F
22 1 2 13 16 F F T F
23 1 2 18 18 M M T T
我尝试过使用melt (reshape2) 和mutate (ddply),但我有几百个变量,我无法将它们全部放入数据框的同一行。我不想对aggregate 之类的变量求和,我只想将一行与另一行叠加并更改所有变量名称以反映它是哪个家族成员。
【问题讨论】:
-
您可能需要给出一个可以轻松复制的具体示例。一些指导:stackoverflow.com/questions/5963269/… 没有一个,大多数情况下我们可以说“看看
melt等”,但你已经知道这些了。也许就是这样,但...让它看起来很伪。 -
对不起,新的堆栈溢出。具体的例子是什么意思?
-
对不起,是的,我的意思是它应该很容易复制(最好可以通过复制粘贴到 R 控制台中),并且所需的输出应该与输入精确对应。 (后者在这里可能成立,但对我来说并不明显,因为您添加了椭圆,使其看起来像一个草图,对应于一些更大的示例,其他列未明确列出。)
-
据我所知,这是一个很常见的重塑宽度。
-
您是否输入了错误的预期输出?看起来 Q2.2 列应该是 Q1.2 ?