【发布时间】:2019-05-23 23:08:55
【问题描述】:
我有一个包含两个变量的数据集:DATE 和 服务年限(仅用于制作一个可重复的小示例)。 我需要获取此人开始工作的月份(本示例为 1989-06 年),考虑到如果解决方案适用于许多人,则开始工作的月份可能因人而异。 像这样的:
library(data.table)
dt <- structure(list(DATE = c("2009-01", "2009-02", "2009-03", "2009-04",
"2009-05", "2009-06", "2009-07", "2009-08", "2009-09", "2009-10",
"2009-11", "2009-12", "2010-01", "2010-02", "2010-03", "2010-04",
"2010-05", "2010-06", "2010-07", "2010-08", "2010-09", "2010-10",
"2010-11", "2010-12", "2011-01", "2011-02", "2011-03", "2011-04",
"2011-05", "2011-06", "2011-07", "2011-08", "2011-09", "2011-10",
"2011-11", "2011-12"), Years_service = c(19, 19, 19, 19, 19,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22),
INITIAL_MONTH = c("1989-06", "1989-06", "1989-06", "1989-06",
"1989-06", "1989-06", "1989-06", "1989-06", "1989-06", "1989-06",
"1989-06", "1989-06", "1989-06", "1989-06", "1989-06", "1989-06",
"1989-06", "1989-06", "1989-06", "1989-06", "1989-06", "1989-06",
"1989-06", "1989-06", "1989-06", "1989-06", "1989-06", "1989-06",
"1989-06", "1989-06", "1989-06", "1989-06", "1989-06", "1989-06",
"1989-06", "1989-06")), .Names = c("DATE", "Years_service",
"INITIAL_MONTH"), class = c("data.table", "data.frame"), row.names = c(NA,-36L))
head(dt)
DATE Years_service INITIAL_MONTH
1: 2009-01 19 1989-06
2: 2009-02 19 1989-06
3: 2009-03 19 1989-06
4: 2009-04 19 1989-06
5: 2009-05 19 1989-06
6: 2009-06 20 1989-06
如何在 R 中获取它?
【问题讨论】:
-
列
INITIAL_MONTH是您的预期输出吗?您如何根据Date和Years_service计算它?您如何获得所有输出1989-06? -
是的,该列是我的预期输出。我通过减去日期 - 服务年数来计算该列。
-
对于第一行,假设
2009-01是年和月,如果你减去 19 年,你不应该得到1990-01吗? -
是的,但正如您在 Years_service 列中看到的那样,当值为 jun 时它会发生变化,我需要 INITIAL MONTH 是唯一的,这就是我重复此值的原因。这是个人开始工作的唯一日期
标签: r data.table