【发布时间】:2013-04-28 16:52:42
【问题描述】:
向社区的所有成员致敬。 这个问题可能与我之前问过的另一个问题相同,因此可能是重复的,但请求输出肯定与上一个问题不同。
我有以下数据库:
ID1=rep((1:1),20)
ID2=rep((2:2),20)
ID3=rep((3:3),20)
ID<-c(ID1,ID2,ID3)
DATE1=rep("2013-1-1",10)
DATE2=rep("2013-1-2",10)
DATE=c(DATE1,DATE2)
IN<-data.frame(ID,DATE=rep(DATE,3))
我想创建一个新变量,可以确定每个 id 记录了多少突发(突发定义为每天的一个观察周期),如下所示:
IN$BURSTTRUE<-rep(c(rep(1,10),rep(2,10)),3)
直到现在我已经尝试过这个解决方案(但不幸的是它不起作用,因为它正确识别每个突发,但不是根据每个 id)。
IN$BURST<-with(IN,as.numeric(interaction(IN$ID,IN$DATE,lex.order=TRUE)))
我认为ave 函数可能有助于解决此任务:我尝试了几种组合,但都没有奏效,因此我将解决方案报告为更接近请求输出。
一如既往,任何建议都非常感谢!
【问题讨论】:
-
as.data.frame(table(IN$ID, IN$DATE))?? -
@Arun 我认为您的答案是正确的。为什么要删除?
-
嗨@Arun,我不想计算有多少条记录。我想确定每个 ID 有多少突发,就像在提供的输出中一样。
-
@stefano,我已取消删除我的答案。请检查这是否是您需要的。
-
+1 可重现示例,显示所需输出。
标签: r variables conditional-statements sequences