如何根据Python中不同数据帧/患者之间的第一列元素/基因计算第二列值/计数的平均值,R?
输入数据帧: df1: df2: 输出应该是一个数据框,其中df1和df2中的所有可能基因都具有平均值。如果df1有一个不在df2中的元素,则在df2中将该元素计为零。结果数据帧应该是这样的。 结果数据帧: :R中的一个选项是在用完整的、按“基因”分组的数据集扩展后,将两个数据集绑定在一起,总结“计数”列的平均值如何根据Python中不同数据帧/患者之间的第一列元素/基因计算第二列值/计数的平均值,R?,python,r,pandas,merge,Python,R,Pandas,Merge,输入数据帧: df1: df2: 输出应该是一个数据框,其中df1和df2中的所有可能基因都具有平均值。如果df1有一个不在df2中的元素,则在df2中将该元素计为零。结果数据帧应该是这样的。 结果数据帧: :R中的一个选项是在用完整的、按“基因”分组的数据集扩展后,将两个数据集绑定在一起,总结“计数”列的平均值 library(dplyr) library(tidyr) out <- bind_rows(df1, df2, .id = 'grp') %>% co
library(dplyr)
library(tidyr)
out <- bind_rows(df1, df2, .id = 'grp') %>%
complete(grp, Genes, fill = list(Count = 0)) %>%
group_by(Genes) %>%
summarise(Average = mean(Count))
# A tibble: 5 x 2
# Genes Average
# <chr> <dbl>
#1 A 9
#2 B 7
#3 C 11
#4 D 13
#5 E 5
数据
非常感谢你的帮助。但是B值应该是7,E值应该是5,而不是14和10。@Jaleesurahman对于基因A,您的平均值在预期中显示为14,但两个数据集中的值都是8和10。不过还不清楚。同样的问题在'D'以及20,6->平均13是的,我犯了这个错误。你的答案正是我想要的。谢谢如何存储生成的数据帧?
df1 <- structure(list(Genes = c("A", "B", "C", "D"), Count = c(10, 14,
4, 20)), class = "data.frame", row.names = c(NA, -4L))
df2 <- structure(list(Genes = c("A", "C", "D", "E"), Count = c(8, 18,
6, 10)), class = "data.frame", row.names = c(NA, -4L))