首页 > 解决方案 > 如何计算R中两列的匹配值?

问题描述

我无法弄清楚如何做到这一点,我似乎无法找到答案,因此将不胜感激。我想要做的是计算某些匹配值,例如,如果列 x 有 ab 并且列 y 有 a 它被计为一个/匹配并且它完成直到最后一行。

df <- data.frame(x = c("b","c","a","d","f","b","c","b"), y = c("a","b","c","a","d","a","f","a"))
> df
  x y
1 b a
2 c b
3 a c
4 d a
5 f d
6 b a
7 c f
8 b a

我尝试过的是这样的:

b <- x == "b"
a <- y == "a"
b[a]

我假设 b 找到任何有 a 的行,如果这有意义的话。

标签: rmatching

解决方案


使用“and”运算符&组合逻辑条件,指示它们何时都为真,并sum()计算逻辑条件为真的次数。我想你想要

sum(df$x == "b" & df$y == "a")
# [1] 3

请注意这很好地反映了您的语言。您说“ x 有一个“b”,而列 y 有一个“a ”。

# x has a "b"  and  y has an "a"
  x == "b"      &    y == "a"

|如果您想查看 x 有多少次“b”y 有多少次“a”,可以使用“或”运算符。


推荐阅读