r - 合并两个数据帧,但表示两个数据帧中都存在的列

标签 r dplyr plyr reshape2

假设我有两个 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.xA6.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/

相关文章:

r - 逐行变异的有效方法

r - R 中数据帧的智能转置

使用不同的数据重复 ggplot 而不输入整个代码

r - 通过 texreg 输出广义线性模型

r - 如何格式化data.frame?

r - Demean R 数据框

r - 将文本添加到与条件匹配的ggplot geom_jitter点

r - 使用facet_wrap()时在ggplot中手动标记轴

r - 使用不同的数据框填充列中的缺失值

在dplyrcross()中引用列名