【发布时间】:2019-03-05 18:09:14
【问题描述】:
我很难找到我想要的结果。我正在尝试首先将我的数据重塑为宽格式并恢复为长格式。这是一个非常简单的代码:
set.seed(1)
dat <- data.frame(
id = rep(c("one", "two"), each=4),
program = rep(1:4, 2),
days = sample(1:100, 8, replace=FALSE),
min.date = sample(2000:2015, 8, replace = TRUE),
max.date = sample(2014:2019, 8, replace = TRUE))
日期:
id program days min.date max.date
one 1 27 2010 2018
one 2 37 2000 2019
one 3 57 2003 2016
one 4 89 2002 2018
two 1 20 2010 2019
two 2 86 2006 2016
two 3 97 2012 2018
two 4 62 2014 2014
我想重塑这个长数据的方法是使用min.date 和max.date 变量为每个程序创建一个宽格式。这是我预期的宽格式:
id program.1.2010 program.1.2011 program.1.2012 program.1.2013 ...
one 27 27 27 27 ...
two 20 20 20 20 ...
基本上,每个 id 都会在 min.date 和 max.date 之间以宽格式记录每个程序的天数。任何想法将不胜感激。
【问题讨论】:
-
你用什么代码来重塑,发生了什么?
-
您的预期输出与输入不匹配
-
您是否正在为每个 min.date-max.date-program 组合寻找单个列?
-
@iod 是的,这就是我要找的。我似乎无法弄清楚第一步该做什么
-
查看您的期望结果,看起来您实际上正在寻找的是每个年度计划组合的单列,数据仅包含在最小-最大值范围内的计划年度中该程序/ID的范围。那……可能不是一个好的数据结构。你到底想达到什么目的?听起来像是 XY 问题