簡體   English   中英

比較不同數據框的更快列

[英]Compare faster columns of different dataframes

讓我們假設兩個數據幀:A和B包含如下數據:

Dataframe: A              Dataframe: B
   ColA                     ColB1      ColB2
| Dog   |                 | Lion     | yes
| Lion  |                 | Cat      | 
| Zebra |                 | Elephant | 
| Bat   |                 | Dog      | yes

想要將ColA的值與ColB1的值進行比較,以便在列ColB2中匹配時插入yes。 我正在運行的是這樣的:

for (i in 1:nrow(B)){
    for (j in 1:nrow(A)){
         if (B[i,1] == A[j,1]){
             B[i,2] <- "yes"
         }  
    }   
}

實際上,我們正在談論abaout 20000行。 怎么會更快呢?

您可以使用%in%運算符確定成員資格:

B$ColB2 <- B$ColB1 %in% A$ColA

ColB2將包含TRUE/FALSE具體取決於是否在數據幀A ColA中找到數據幀B ColB1的值。

有關更多信息,請參見:

https://stat.ethz.ch/R-manual/R-devel/library/base/html/match.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM