0
對不起,希望它不太誤導。 我有以下數據幀DF1:匹配列和列表
id1 clas1 clas2 clas3
512 ns abx NA
512 ns or NA
512 abx dm sup
845 or NA NA
1265 dd ivf NA
1265 ns ivf pts
9453 col ns ivf
9453 abx ns or
95635 ns abx or
然後,我有「DF2」具有以下信息(一些在DF1 $ ID1的值被包括在DF2 $ ID2,反之亦然),它是一個列在另一數據集或第一個不同的長度。
id2 clas0
102 ns
512 ns
915 ns
1265 ns
9453 ns
10485 ns
95639 ns
100348 ns
我所試圖做的是要算多少「ID1」具有在任何CLAS列(即「NS」)的共同價值(即「NS」)與ID2。
所以我已經試過這樣:
x<-as.numeric(levels(factor(df2$id2)))
clas<-ls()
for(i in 1:x){
for(j in 1:length(df1$id1)){
if(df1$id1==i){clas[[i]]=append(clas[[i]],c(df1$clas1[j],df1$clas2[j],df1$clas3[j]))}
}
}
我想在這裏做的是建立包括所有clas1,clas2或clas3列表時反覆ID1,這樣我可以再後來看到當clas0中的值是否包含在列表中的某個位置? 但我總是收到以下警告:
In if (id1$id1 == i) { ... :
the condition has length > 1 and only the first element will be used
我被卡住了。有人能指出我正確的方向嗎? 非常感謝 馬爾科
我不太明白你想要做什麼,但錯誤可能是從'如果(DF1 $ ID1 == I)'。 'if'不返回一個向量,它返回一個T/F值。你試圖讓它比較整個'df $ id'向量與'i',它應該爲'df $ id'的每個元素返回T/F,而不僅僅是單個T/F。 – TheComeOnMan
您能舉一個例子說明您如何期望輸出看起來像 –