如何合并两个数据帧,一个是列,另一个是行?例如,我有两个这样的数据框:
A: add1 add2 add3 add4
1 k NA NA NA
2 l k NA NA
3 j NA NA NA
4 j l NA NA
B: age size name
1 5 6 x
2 8 2 y
3 1 3 x
4 5 4 z
我想通过row.name合并两个data.frames . 但是,我想合并data.frame A列,而不是行 . 所以,我正在寻找一个像这样的data.frame结果:
C:id age size name add
1 5 6 x k
2 8 2 y l
2 8 2 y k
3 1 3 x j
4 5 4 z j
4 5 4 z l
例如,假设您有表B中人员的信息,包括姓名,大小等 . 这些信息是唯一值,因此您在B中每人有一行 . 然后,假设在表A中,您最多有5个过去的地址人第一列是最新的地址;第二,是第二个最近的地址;现在,如果某人的地址少于5个(例如3个),则该人的4列和5列中包含NA .
我想要实现的是一个数据框(C),它包含所有这些信息 . 因此,对于具有两个地址的人,我将需要表C中的两行,重复唯一值并且仅在列地址中不同 .
我想通过非NA值的数量重复A数据帧的行,同时保持row.names与它们相同(如数据帧D),然后将新数据帧与B合并 . 但是我'我不知道该怎么做 .
D: address
1 k
2 l
2 k
3 j
4 j
4 l
谢谢!
1 回答
将第一个data.frame更改为long格式,然后很容易 . df1是A而df2是B.我还将数字命名为id .