gpt4 book ai didi

r - 检查一个数据帧的每一行是否包含在另一个数据帧中

转载 作者:行者123 更新时间:2023-12-04 05:12:33 26 4
gpt4 key购买 nike

我写了以下函数,它有效。但是当df1时速度很慢有 1700 行,和 df2有 70000 行。有没有办法提高效率?

rowcheck <- function(df1, df2){
apply(df1, 1, function(x) any(apply(df2, 1, function(y) all(y==x))))
}

我编写了这个函数来应用的一个例子是:我想检查 df1 中的每一行是否作为 df2 中的一行包含:
df1=data.frame(a=c(1:3),b=c("a","b","c"))
df2=data.frame(a=c(1:6),b=rep(c("a","b","c"),2))

对于 df1 的每一行,我想检查它是否作为 df2 中的一行包含。我想将该函数返回为长度为 nrow(df1) 的逻辑向量。

谢谢您的帮助。

最佳答案

一种方法是将行粘贴在一起,并将它们与 %in% 进行比较。 .结果是长度为 nrow(df1) 的逻辑向量, 按照要求。

do.call(paste0, df1) %in% do.call(paste0, df2)
# [1] TRUE TRUE TRUE

关于r - 检查一个数据帧的每一行是否包含在另一个数据帧中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22673335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com