When I broke down the AL MVP race, one of the things I mentioned was how RBIs are somewhat circumstantial. Being a good hitter doesn't automatically get you RBIs; you do need runners on base (obviously). In the same way, having runners on base could lead to RBIs, even if a player isn't hitting great. For a perfect example of this, look no further than Hunter Pence. Pence finished 14th in baseball with 104 RBIs, even though he only hit .253 (106th in the league). But that doesn't tell the full story. Because Pence was on two different teams, you can see the difference in production.
In Philly, Pence hit 59 RBIs in 398 at-bats. In San Francisco, he had 45 RBIs in 219 at-bats. In order to give a clearer comparison, let's look at how many RBIs he would have had if he had played a full year in each location. Pence was on pace for 630 at-bats in Philly and 594 at-bats in San Francisco. We'll just average the two and set the hypothetical number at 612 at-bats. Assuming he had 612 ABs, Pence was on pace for 91 RBIs in Philly and 126 RBIs in San Francisco. What's even crazier? Pence was hitting .271 in Philly and only .219 with the Giants. Using the same 612 ABs, that's the difference between finishing with 166 hits and 134. Pence would have 35 more RBIs, despite getting 32 less hits! If you can hit worse, yet drive in more runs, something tells me that who bats in front of you does make a pretty big difference.