假设我有两个 data.frames,
df = data.frame(gene = c("KRAS", "FOS"), A6 = c(20, 50), A7 = c(90, 80))
df2 = data.frame(gene = c("KRAS", "FOS"), A6 = c(20, 250) )
这里重复了A6
,当我尝试使用merge(df, df2, by = "gene")
)合并这两个数据帧时,它会创建新的包含 A6.x
和 A6.y
的列。
有没有办法让它合并,这样它就会取重复列的平均值?谢谢!
最佳答案
按数字列名称(子字符串)合并
分割
数据并获取rowMeans
cbind(out[1], sapply(split.default(out[-1],
sub("\\..*", "", names(out)[-1])), rowMeans))
# gene A6 A7
#1 FOS 150 80
#2 KRAS 20 90
数据
out <- merge (df, df2, by="gene")
关于r - 合并两个数据帧,但表示两个数据帧中都存在的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53869746/