서로 다른 차원을 가진 두 개의 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
열에 확인하십시오.
기본적으로 GENES
및 pattern1.match
을 df2$Genes
및 df2$Pattern.Count
으로 덮어 쓰고 싶습니다. 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에 포함되어 있습니다. 유전자가 df2 – agatha
패턴에서 발견되었을 때 df1 $ pattern.match의 요소를 1로 표시함으로써 Pattern을 찾습니다.Count 열은 이미 다른 데이터 세트에서 추출되었으므로 요소 만 = 1입니다. – agatha
OK, 문제 해결에 더 좋은 솔루션이 있습니다. – James