我有两个数据表:
一个
animal number
dog 11
cat 7
pig 5
B
animal number
dog 1
cat 2
pig 2
pig 3
cat 4
dog 2
我想根据匹配的动物从B中的数字中减去A中的数字,得到结果...
-10
-5
-3
-2
-3
-9
我确信我可以在不编写循环的情况下做到这一点,但不知道如何去做。我已经做了很多搜索,但是我这样做并没有取得任何结果。 (这是使用 apply
之类的东西吗?)
最佳答案
假设你的数据框是A
和B
,使用match
是一种可能:
B$number - A$number[match(B$animal, A$animal)]
# [1] -10 -5 -3 -2 -3 -9
如果您想将此附加到 B
,请使用
B$diff <- B$number - A$number[match(B$animal, A$animal)]
# animal number diff
#1 dog 1 -10
#2 cat 2 -5
#3 pig 2 -3
#4 pig 3 -2
#5 cat 4 -3
#6 dog 2 -9
关于r - 根据一秒的匹配值从一列中减去?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001507/