gpt4 book ai didi

r - 如何测试一对元素是否在数据框中?

转载 作者:行者123 更新时间:2023-12-01 09:57:17 25 4
gpt4 key购买 nike

假设我有这个数据框 A:

A = data.frame(first=c("a", "b","c", "d"), second=c(1, 2, 3, 4))

first second
1 a 1
2 b 2
3 c 3
4 d 4

我有这个数据框 B:

B = data.frame(first=c("x", "a", "c"), second=c(1, 4, 3))
first second
1 x 1
2 a 4
3 c 3

我想统计一对数据框B(B$first,B$second)在数据框A中出现的次数。计数部分没有问题,我只是找不到函数确定一对是否在数据框中。

结果是只有 c("c",3) 是 A 的一个元素,所以它应该是 1。"a"和 4 都在数据帧 A 中,但是 c("a", 4) 在数据框A中不存在,所以我不想算这个。我想要完全匹配。

我正在寻找一个类似 %in% 的函数,它可以用于对。

谢谢你的帮助

最佳答案

也许是这样的

apply(B, 1, function(r, A){ sum(A$first==r[1] & A$second==r[2]) }, A)

基本上,它的作用如下:对于 B 的每一行,它应用一个函数来检查 A 的哪些元素与 r 行一致 来自 B(部分 A$first==r[1] & A$second==r[2]),然后对获得的逻辑求和以导出A 中符合行 r 的行数。

如果你还想分组,可以像这样使用 dplyr 轻松完成

cbind(B,tmp) %.% group_by(first,second) %.% summarise(n=max(tmp))

其中 tmp 是一个变量,表示上述 apply

的结果

关于r - 如何测试一对元素是否在数据框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23426520/

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