首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为日期范围内的观察创建虚拟变量

为日期范围内的观察创建虚拟变量
EN

Stack Overflow用户
提问于 2014-02-23 05:07:31
回答 1查看 2.1K关注 0票数 0

我想要创建一个新的虚拟变量,如果我的观察值在某一组日期范围内,则打印1,如果不是,则打印0。我的数据集是一个10年的政治捐款列表,我想做一个虚拟变量来标记捐款是否在一定的日期范围内进行。我有10个约会范围。

有没有人知道这样做的正确方法是创建一个循环?我一直在研究这个问题,这个问题看起来很相似,但我认为我的问题会更复杂一些:Creating a weekend dummy variable

举个例子,我有一个可变的列表日期来记录缴款,我想创建一个虚拟模型来显示这种缴款是否是在预算危机期间产生的。因此,如果从2010-2-01年到2010-03-25年间出现预算危机,从2009-06-05到2009-07-30又发生了一次预算危机,那么这个变量最好是这样:

贡献Date.......Budget危机

2009-06-01.0

2009-06-06.1

2009-07-30.1

2009-07-31.0

2010-01-31.0

2010-03-05.1

2010-03-26.0

再次感谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-28 00:25:50

这似乎是使用%in%函数的match(...)语法的好机会。

代码语言:javascript
运行
复制
dat <- data.frame(ContributionDate = as.Date(c("2009-06-01", "2009-06-06", "2009-07-30", "2009-07-31", "2010-01-31", "2010-03-05", "2010-03-26")), CrisisYes = NA)

crisisDates <- c(seq(as.Date("2010-02-01"), as.Date("2010-03-25"), by = "1 day"),
                 seq(as.Date("2009-06-05"), as.Date("2009-07-30"), by = "1 day")
                 )

dat$CrisisYes <- as.numeric(dat$ContributionDate %in% crisisDates)
dat

 ContributionDate CrisisYes
1       2009-06-01         0
2       2009-06-06         1
3       2009-07-30         1
4       2009-07-31         0
5       2010-01-31         0
6       2010-03-05         1
7       2010-03-26         0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21964441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档