R 如何计算一列中满足另一列条件的条目数?
我有这样一个数据框:R 如何计算一列中满足另一列条件的条目数?,r,R,我有这样一个数据框: head(m,20) snp1 snp2 r2 1 rs7278528 rs7278528 1.000 2 rs234750 rs7278528 0.841 3 rs413621 rs7278528 0.841 4 rs413624 rs7278528 0.568 5 rs4920017 rs7278528 0.841 6 rs393280 rs7278528 0.821 7 rs1788470 rs7
head(m,20)
snp1 snp2 r2
1 rs7278528 rs7278528 1.000
2 rs234750 rs7278528 0.841
3 rs413621 rs7278528 0.841
4 rs413624 rs7278528 0.568
5 rs4920017 rs7278528 0.841
6 rs393280 rs7278528 0.821
7 rs1788470 rs7278528 0.568
8 rs10887972 rs7278528 0.568
9 rs439861 rs7278528 0.568
10 rs1672133 rs7278528 0.841
11 rs370994 rs7278528 0.841
12 rs442981 rs7278528 0.841
...
我想在一个单独的列中计算并输出snp2中的每个唯一值,有多少snp1的r2>0.8
我很累,但没有成功:
m %>%
group_by(snp1) %>%
summarize(sumR2 = sumRows(snp1[r2>0.8]))
更新
这解决了我的问题:
t <- filter(m, r2 >= 0.8) %>% group_by(snp1) %>% mutate(ldbuds = length(r2))
t=0.8)%%>%groupby(snp1)%%>%mutate(ldbubs=length(r2))
根据描述,我们可能需要按“snp2”分组,提取与“r2”大于0.8的位置相对应的“snp1”,并获得“snp1”的唯一元素的长度
library(tidyverse)
m %>%
group_by(snp2) %>%
summarize(sumR2 = n_distinct(snp1[r2>0.8]))
也可能是
m %>%
group_by(snp2) %>%
summarise(sumR2 = sum(r2 > 0.8, na.rm = TRUE))
根据描述,我们可能需要按“snp2”分组,提取对应于“r2”大于0.8的“snp1”,并获得“snp1”的唯一元素的长度
library(tidyverse)
m %>%
group_by(snp2) %>%
summarize(sumR2 = n_distinct(snp1[r2>0.8]))
也可能是
m %>%
group_by(snp2) %>%
summarise(sumR2 = sum(r2 > 0.8, na.rm = TRUE))
如果你能包括你的数据可复制的例子会很好 但如果你想按snp2分组,这应该是可行的
m %>%
group_by(snp2) %>%
summarize(sumR2 = n_distinct(r2>0.8))
如果你能包括你的数据可复制的例子会很好 但如果你想按snp2分组,这应该是可行的
m %>%
group_by(snp2) %>%
summarize(sumR2 = n_distinct(r2>0.8))
Protip:如果您将问题描述为“针对
snp2
中的每个唯一值”,那么您几乎肯定希望分组依据(snp2)
。Protip:如果您将问题描述为“针对snp2
中的每个唯一值”,那么您几乎肯定希望分组依据(snp2)
。