Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
R 如何计算一列中满足另一列条件的条目数?_R - Fatal编程技术网

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)