python - 如何根据 Python、R 中不同数据框/患者之间的第一列元素/基因取第二列值/计数的平均值?
问题描述
输入数据框:
df1:
df2:
输出应该是一个数据框,其中包含 df1 和 df2 中所有可能的基因的平均值。如果 df1 有一个不在 df2 中的元素,则将该元素在 df2 中计数为零。结果数据框应该是这样的。结果数据框:
3:
解决方案
一种选择R
是在扩展两个数据集后将两个数据集绑定在一起complete
,按“基因”分组,summarise
“mean
计数”列
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
数据
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))
推荐阅读
- javascript - 我可以让我的不和谐机器人基于网站发送消息吗?
- reactjs - react redux中的删除操作不起作用
- postgresql - Postgres SERIALIZABLE Snapshot Isolation 出现意外的枢轴错误
- java - 从另一个类调用静态方法而不在 Java 中创建对象
- youtube - 如何批量删除所有 YouTube 评论
- json - 我的 JSON 是“有效的”,但在 SharePoint 列中不起作用
- javascript - 你能告诉我为什么下面的 javascript 代码并不总是在下面的简单 index.html 中出现吗?
- python - 如何在 Pandas 数据框中为索引添加列名
- npm - gulp-sass 5 没有默认的 Sass 编译器;请自己设置一个
- git - 如何从在 Aws amplify 上运行的 git clone 继续