r - 拆分 | 并列出频率
问题描述
我有一个由一列组成的 data.frame,如下所示:
E1| E3|SAMD11 E3|SAMD11 E2|SAMD11 E10|SAMD11 E10|SAMD11 E10|SAMD11 E10|SAMD11 E10|SAMD11 E1| E2| E3| E3|PERM1 E9|AL645608.7;HES4;ISG15 E3|EGFR;HES4;PIK3CA
E* 是从 1 到 10 我想计算每个基因删除或忽略 E| 的情况下我有多少 E* 后面是空的。所需的输出将是:
SAMD11: E3: 2 SAMD11: E2: 1 SAMD11: E10: 5 PERM1: E3: 1 HES4: E9: 1 HES4: E3: 1 AL645608.7 E9:1 ISG15: E9: 1 EGFR: E3: 1 PIK3CA E3: 1
任何人都可以帮助我吗?
解决方案
library(dplyr)
library(tidyr)
#split on | then separate on ;
df %>% extract(id, into=c('id','gene'), regex="(.*)\\|(.*)?") %>%
separate_rows(gene, sep='\\;') %>%
filter(gene!="") %>%
count(gene, id)
# A tibble: 10 x 3
gene id n
<chr> <chr> <int>
1 AL645608.7 E9 1
2 EGFR E3 1
3 HES4 E3 1
4 HES4 E9 1
5 ISG15 E9 1
6 PERM1 E3 1
7 PIK3CA E3 1
8 SAMD11 E10 5
9 SAMD11 E2 1
10 SAMD11 E3 2
推荐阅读
- reactjs - 错误:应用程序(...):渲染没有返回任何内容。Esri-Leaflet-Geocoder
- json - 覆盖 kafka-connect 连接器中的 schemas.enable
- c++ - 在 C++ 中从 std::cout 中提取标准输出
- javascript - `--save` 在 NPM 5.0 + 中有什么作用
- reactjs - 使用联合类型泛型时推断单个类型(扩展反应组件道具)
- php - 如何在 Laravel 中使用 FOREACH 从数据库中获取数据?
- r - For 循环在第 2 行后创建 NA
- android - 反应原生。每当应用程序来自后台时,如何获取用户本地身份验证?
- python - 用 NA 填充 Categorical NaN 值,用 0 填充 Numerical NaN
- python - Python 帮助:用 Pandas 合并/加入替换 Excel 中的 V-Lookup