我試過編寫下面的代碼來確定數字的內部範圍,即:SNP [i,1]應該小於工作[j,1]並且大於工作[j,2 ]被添加到新的數據框。解析R中的數據時出錯
SNP文件是350行,並且工作6500.出於某種原因,我最終以10000s的數據行不符合我的條件。
顯而易見,我在這裏有什麼問題嗎?
for (i in 1:nrow(SNP_file)){
for (j in 1:nrow(Working)){
if ((as.numeric(SNP_file[i,1]) >= as.numeric(Working[j,1])) && (as.numeric(SNP_file[i,1]) <= as.numeric(Working[j,2]))){
New <- rbind(New, data.frame(Chromosome =Working[j, 1],
Start= Working[j, 2],
Stop = Working[j, 3],
GO = Working[j,4],
Position = VCF[i,1],
REF = SNP_file[i,2],
GT = SNP_file[i,3],
Site_Conf = SNP_file[i,4]
))
}}}
感謝,
Ĵ
作爲OP筆記,有350線在*工作*文件* SNP *文件和6500。您的代碼解決了索引相同的行的問題。但是不清楚應該用另一個6150行* Working *文件來完成。我錯過了什麼嗎? (在我看來,OP想要使用另一個文件的信息來過濾一個文件,儘管它沒有明確說明。) – Daniel
@Daniel是的,他們應該澄清這一點。目前,將Working的子集設置爲前350行將進行一對一的比較。 –