我有2个数据帧(工资和投球)。薪水(我们发现球员的薪水)有大约26,000个参赛者,而Pitching(我们发现球员的统计数据)有大约19,000个参赛者。显然,获取某些特定统计数据而不仅仅是工资要复杂得多,所以这是可以理解的。
现在我想在Pitching数据框中添加一个工资列,但仅适用于匹配的(相同的玩家,相同的日期)。我想编写像
这样的代码如果玩家姓名(来自工资数据框)=玩家姓名(来自投球数据框)和年份(来自工资数据框)=年(来自投球数据框)然后在投球数据框中插入薪资,否则写入N / A < / p>
然后通过这种方式,我可以删除带有N / A的行,并使用我想要的数据清理工作表,可能会少一些观察但是完整的。
我尝试过类似的事情:
full_join(Salaries,Pitching, by="salary") %>%
mutate(condition = (Salaries$playerID == Pitching$playerID & Salaries$yearID = Pitching$yearID))
CombineDf <- merge(y=Salaries, y=Pitching, by=Pitching$playerID)
joined = cbind(Salaries[match(names(Pitching), Salaries$playerID),], Pitching)
Pitching$Salary <- ifelse(Salaries$playerID >= Pitching$playerID & Salaries$yearID >= Pitching$yearID, Salaries$salary, "N/A")
但遗憾的是没有什么能正常运作。如果你帮助我解决这个问题,我会很高兴。
非常感谢