R 如何得到平均值G';满足条件的所有变量的得分进入新列
我有一个SNP数据集,看起来有点像这样: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
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”)`
Checkfuzzyjoin
package-检查fuzzyjoin
package-