我有很多data.frames,例如:
df1 = data.frame(names=c('a','b','c','c','d'),data1=c(1,2,3,4,5))
df2 = data.frame(names=c('a','e','e','c','c','d'),data2=c(1,2,3,4,5,6))
df3 = data.frame(names=c('c','e'),data3=c(1,2))
我需要合并这些data.frames,而不删除名称重复
> result
names data1 data2 data3
1 'a' 1 1 NA
2 'b' 2 NA NA
3 'c' 3 4 1
4 'c' 4 5 NA
5 'd' 5 6 NA
6 'e' NA 2 2
7 'e' NA 3 NA
我找不到像合并一样的函数来处理名称重复 . 谢谢您的帮助 . 定义我的问题 . 数据来自生物实验,其中一个样品具有不同数量的重复 . 我需要合并所有实验,我需要生成这个表 . 我无法为重复项生成唯一标识符 .
3 回答
首先定义一个函数
run.seq
,它为重复项提供序列号,因为从输出中可以看出所需的是合并的每个组件中每个名称的第i个副本 . 然后创建数据框列表并为每个组件添加run.seq
列 . 最后使用Reduce
将它们全部合并 .最后一行给出:
编辑:修改
run.seq
,以便无需对输入进行排序 .看其他问题:
How to join data frames in R (inner, outer, left, right)
recombining-a-list-of-data-frames-into-a-single-data-frame
......
例子:
要么
要么
我认为您的示例数据框中没有足够的信息来执行此操作 . 哪个数据帧1中的
'c'
应与数据帧2中的'c'
配对?我们无法分辨,所以R也不能 . 我怀疑您必须为每个数据帧添加另一个变量,以便唯一标识这些重复的案例 .