【发布时间】:2019-09-20 11:55:37
【问题描述】:
我有一个包含多年值列的数据框。这些年可能不遵循顺序,并且可能缺少第 5 年。这是一个示例数据框
df = data.frame(code = c("AFG", "AGO", "ALB", "AND", "ARB", "ARE", "ARG", "ARM", "ASM", "ATG", "AUS", "AUT", "AUT", "AUT", "AUT", "ABW", "AFG", "AGO", "ALB", "AND", "ARB", "ARE", "ARG", "ARM", "ARM"),
PPT = c(123, 42, 23, 5, 42, 4, 23, 25, 42, 23, NA, 5563, 56, 54, 645, 6, 4,53, 656, 65, 5563, 646, 6, 66, 54),
Year = c(1990, 1991, 1992, 1993, 1991, 1995, 1996, 1997, 1991, 1992, 2000, 2001, 2002, 2014, 2004, 2005, 2006, 2007, 1960, 2009, NA, 2011, 2012, 2013, 2014))
我想添加一个额外的列,该列将基于那一年的值与 year+5 之间的差异。前任。如果 year 列中的第一年是 1960 年,但没有 1965 年的 PPT 数据,则 new_col 中的值将为 NA。类似地,1990 年 new_col 的值为 119(123-4),2000 年为 NA(2005 年没有可用的 PPT 数据),1991 年为 19,1992 年为 -2,依此类推。
我在 excel 中有一种非常复杂的方法,但是,我正在寻找 R 中更简单的解决方案
【问题讨论】:
-
might have a missing 5th year所以序列中可能缺少一些年份? -
我已更新数据集以解决两列中缺失和重复的值。
标签: r dplyr data.table tidyr