我有两个数据表:
一种
animal number
dog 11
cat 7
pig 5
Run Code Online (Sandbox Code Playgroud)
乙
animal number
dog 1
cat 2
pig 2
pig 3
cat 4
dog 2
Run Code Online (Sandbox Code Playgroud)
我想根据匹配的动物从B 中的数字中减去A中的数字,以获得结果......
-10
-5
-3
-2
-3
-9
Run Code Online (Sandbox Code Playgroud)
我确信我可以在不必编写循环的情况下做到这一点,但不知道该怎么做。我已经做了很多搜索,但是我这样做并没有产生任何结果。(这apply
是使用how 之类的东西吗?)
假设您的数据框是A
和B
,使用match
是一种可能性:
B$number - A$number[match(B$animal, A$animal)]
# [1] -10 -5 -3 -2 -3 -9
Run Code Online (Sandbox Code Playgroud)
如果您想将此附加到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
Run Code Online (Sandbox Code Playgroud)