df1 <- data.frame(chrom = c("chr1","chr2", "chr5"), start=c(10,20,30), end = c(100,200,300), stringsAsFactors=FALSE)
df2 <- data.frame(chrom = c("chr1", "chr4", "chr2"),start=c(15,500,150), end = c(75,1000,300), stringsAsFactors=FALSE)
私の答えはあるべき使用:forループ
chrom start end
1 chr1 15 75
3 chr2 150 300
、私は次の操作を実行したとき:
for(i in 1:length(df2)){
for(j in 1:length(df1)){
if(df2$chrom[i] == df1$chrom[j])
x <- df2[which(df1$chrom[j] == df2$chrom[i]),]
}
}
私が手:
chrom start end
1 chr1 15 75
は明らかに私の論理は間違っています。その1回の反復だけです。誰かが私の理解を助けることができる?たぶん私はこのようなもののために作られていません...とにかく助けてくれてありがとう
は、編集のためにそんなにビクラムをいただき、ありがとうございます....そんなに良く見えます! – user1079898
心配する必要はありません。誰もが最初にコーディングをしています。それは30年ほど後に良くなると言われています。 –
'df1'をより多くの行に変更してみましょう。 'length(df1)'とは何ですか?次に、 'nrow(df1)'と 'ncol(df1)'を見てください。 –