我有兩個具有不同維度的R數據幀。然而,但數據幀有id
列通過循環另一個數據幀來映射數據幀的元素
DF1:
nrow(df1)=22308
c1 c2 c3 pattern1.match
ENSMUSG00000000001_at 10.175115 10.175423 10.109524 0
ENSMUSG00000000003_at 2.133651 2.144733 2.106649 0
ENSMUSG00000000028_at 5.713781 5.714827 5.701983 0
DF2:
Genes Pattern.Count
ENSMUSG00000000276 ENSMUSG00000000276_at 1
ENSMUSG00000000876 ENSMUSG00000000876_at 1
ENSMUSG00000001065 ENSMUSG00000001065_at 1
ENSMUSG00000001098 ENSMUSG00000001098_at 1
nrow(df2)=425
我想遍歷df2
,發現有pattern.count=1
所有基因和請在df1$pattern1.match
欄中查看。
基本上我想用df2$Genes
和df2$Pattern.Count
覆蓋字段GENES
和pattern1.match
。 df2$Pattern.Count
中的所有元素都等於1。
我寫了這個函數,但是當循環遍歷所有這些行時,R凍結。
idcol <- ncol(df1)
return.frame.matches <- function(df1, df2, idcol) {
for (i in 1:nrow(df1)) {
for (j in 1:nrow(df2))
if(df1[i, 1] == df2[j, 1]) {
df1[i, idcol] = 1
break
}
}
return (df1)
}
是否有這樣做的另一種方式幾乎沒有查殺電腦?
所以我df1-主要數據框,我想檢查int df1 $ pattern.match列哪些基因可以在df2中找到...基本上df2中的基因包含在df1中,我想檢查通過將df1 $ pattern.match的元素標記爲1,當在df2 – agatha
中找到基因時,該模式。計數列只有元素= 1,因爲它已經從另一個數據集中提取出來了 – agatha
好的,現在有一個更好的解決方案可以解決問題。 – James