Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据Python中不同数据帧/患者之间的第一列元素/基因计算第二列值/计数的平均值,R?_Python_R_Pandas_Merge - Fatal编程技术网

如何根据Python中不同数据帧/患者之间的第一列元素/基因计算第二列值/计数的平均值,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

输入数据帧:

df1:

df2:

输出应该是一个数据框,其中df1和df2中的所有可能基因都具有平均值。如果df1有一个不在df2中的元素,则在df2中将该元素计为零。结果数据帧应该是这样的。 结果数据帧:

R中的一个选项是在用完整的、按“基因”分组的数据集扩展后,将两个数据集绑定在一起,总结“计数”列的平均值

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))