r - 根据其他变量在R中生成数字序列

标签 r variables sequence

我无法根据其他两个变量生成一个数字序列。 具体来说,我有以下数据库(我的真实数据库不是那么平衡!):

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))

我想根据每个 DATE 每个 ID 的观察次数生成一个数字序列,如下所示:

OUTPUT<-data.frame(ID,DATE=rep(DATE,3),N=rep(rep(seq(1:10),2),3))

奇怪的是,我尝试了以下适用于上面提供的数据库的解决方案,但不适用于真正的数据库!

IN$UNIQUE<-with(IN,as.numeric(interaction(IN$ID,IN$DATE,drop=TRUE,lex.order=TRUE)))#generate unique value for the combination of id and date
PROG<-tapply(IN$DATE,IN$UNIQUE,seq)#generate the sequence
OUTPUT$SEQ<-c(sapply(PROG,"["))#concatenate the sequence in just one vector

现在,我不明白为什么该解决方案不适用于真正的数据库,一如既往地非常感谢任何提示!

这里有一个数据集的示例(仅包含一个 ID):

  id       date
  1  F2_G 2005-03-09
  2  F2_G 2005-06-18
  3  F2_G 2005-06-18
  4  F2_G 2005-06-18
  5  F2_G 2005-06-19
  6  F2_G 2005-06-19
  7  F2_G 2005-06-19
  8  F2_G 2005-06-19
  9  F2_G 2005-06-20

最佳答案

这是一个使用 ave 的:

OUT <- within(IN, {N <- ave(ID, list(ID, DATE), FUN=seq_along)})

关于r - 根据其他变量在R中生成数字序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16038038/

相关文章:

javascript - var a=something 和 window.a=something 之间有什么区别吗?

php - 如何使php post变量唯一

r - 合并两个邻国的SpatialPolygonsDataFrame

R将向量 reshape 为多列

r - 如何将 NA 更改为缺失值指标?

arrays - Angular 8 : Arrange array sequences by hour

f# - 通过流水线查找索引处的元素

r - 为什么 R 的 ccf 说 "Autocorrelations of series ' X',延迟”?

c - 在c中保留变量数组的地址

r - 使用 dplyr 和 rle 对条件组中的连续值进行计数