【发布时间】:2020-11-18 10:36:57
【问题描述】:
我想在我的数据中创建一个递减数年的计数器。 基本上,我有 2 个不同的事件日期,我想从第一个到第二个。我也有一些完全没有事故的失踪案例。
在下面我非常糟糕的模拟数据中,a 组在 1995 年有事件 1,在 1999 年有事件 2。我希望在 1995 年有一个新列从 1995 年的 4、1996 年的 3、1997 年的 2 倒数,依此类推直到 0。在那之前和之后的 NA。 我怎么做? 我玩过 seq,但似乎无法做到。
year <- seq(from = 1990, to=2000)
id <- letters[seq( from = 1, to = 3 )]
df <- data.frame( expand.grid(year, id))
df$inc1[df$Var2 == "a"] <- 1995
df$inc1[df$Var2 == "b"] <- 1992
df$inc2[df$Var2 == "a"] <- 1999
df$inc2[df$Var2 == "b"] <- 1997
想要的结果是这样的
Var1 Var2 toa1 toa2 diff
1 1990 a 1995 1999 NA
2 1991 a 1995 1999 NA
3 1992 a 1995 1999 NA
4 1993 a 1995 1999 NA
5 1994 a 1995 1999 NA
6 1995 a 1995 1999 4
7 1996 a 1995 1999 3
8 1997 a 1995 1999 2
9 1998 a 1995 1999 1
10 1999 a 1995 1999 0
11 2000 a 1995 1999 NA
12 1990 b 1992 1997 NA
13 1991 b 1992 1997 NA
14 1992 b 1992 1997 5
15 1993 b 1992 1997 4
16 1994 b 1992 1997 3
17 1995 b 1992 1997 2
18 1996 b 1992 1997 1
19 1997 b 1992 1997 0
20 1998 b 1992 1997 NA
21 1999 b 1992 1997 NA
22 2000 b 1992 1997 NA
23 1990 c NA NA NA
24 1991 c NA NA NA
25 1992 c NA NA NA
26 1993 c NA NA NA
27 1994 c NA NA NA
28 1995 c NA NA NA
29 1996 c NA NA NA
30 1997 c NA NA NA
31 1998 c NA NA NA
32 1999 c NA NA NA
33 2000 c NA NA NA
编辑:添加结果,对丢失的年份感到抱歉
【问题讨论】:
-
能否也提供给我们
year-object?最好向我们展示我们想要的结果,而不是描述它。
标签: r countdown data-wrangling