繁体   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