R 如何得到平均值G';满足条件的所有变量的得分进入新列

R 如何得到平均值G';满足条件的所有变量的得分进入新列,r,if-statement,conditional-statements,mean,R,If Statement,Conditional Statements,Mean,我有一个SNP数据集,看起来有点像这样: Position Gprime Score Gene Location SNP 1 500 3.5 NA SNP 2 1200 1.2 NA 一个基因数据集看起来像这样 Name Interval Start Interval End AVG Gprime Gene 1 400

我有一个SNP数据集,看起来有点像这样:

           Position   Gprime Score Gene Location     
    SNP 1   500         3.5            NA
    SNP 2   1200        1.2            NA
一个基因数据集看起来像这样

    Name   Interval Start  Interval End  AVG Gprime
    Gene 1   400             1300          NA
    Gene 2   1100            1500          NA
这些基因有重叠的间隔,一个基因可以有多个SNP(例如:SNP1和SNP2都属于Gene1),一个SNP可以属于多个基因(例如:SNP2同时属于Gene1和Gene2)。我想写一个ifelse语句,它将获取属于某个基因区域的所有SNP的平均Gprime分数,然后将该分数打印在AVG Gprime列下。我已经有了根据SNPs所属的基因对SNPs进行排序的代码,并在SNPset中打印出基因名称。问题是ifelse只打印一个基因名,即使一个SNP可能会分成多个基因

Genes$NAME=as.character(Genes$NAME)` ##required to return the name rather than a factor
SNPs$Gene.Location=ifelse(sapply(SNPs$Position,function(p)any(Genes$Low.Interval<=p&Genes$High.Interval>=p)),Genes$NAME,"NO")`
Genes$NAME=as.character(Genes$NAME)`
SNPs$Gene.Location=ifelse(sappy(SNPs$Position,function(p)any(Genes$Low.Interval=p)),Genes$NAME,“NO”)`

Check
fuzzyjoin
package-检查
fuzzyjoin
package-