我有一个关于动态子集数据表的问题。我知道在stackoverflow上有很多类似计价的线程,但不幸的是他们没有把我带到想要的解决方案。动态子集数据表
的示例数据集:
require(data.table)
dt <- data.table(date=c(rep(1,5),rep(2,5)),id=rep(1:5,2),var=c(1:10))
对于每个ID我想的所有期间的所有其他的ID之前找到的的子集。在示例数据集中有5个ID和两个句点。如果在期间2中查看ID = 5,则对应的子集将是ID = {1,2,3,4)并且日期= 1。在这个简单的数据集我当然可以手工编写此:
dt[,dt[-.I][date<2],by=id]
然而,我想自动执行此操作。我试过类似
dt[,dt[-.I][date < unique(dt$date[.I])],by=id]
但这不起作用。
任何有用的意见感谢!谢谢!
如果您评价我的问题,请留下评论,以便我可以改进问题。谢谢! – chameau13
噢,对不起:我过去提出了一些你的问题,但是呃,我认为这个问题背后的基本思想(创造大量的冗余数据)在大多数应用中被误导了(例如,计算条件概率就像你之前的q),并且你之前曾问过几次。此外,它是错误的指定,因为你把“每个ID的所有时期之前”,这实际上意味着你想要“每个ID和日期”,如下面的答案所示。相关元:http://meta.stackexchange.com/q/18552/209360 – Frank
或者,也许这一个:http://meta.stackexchange.com/questions/8891/is-dont-do-it-a-valid-答案 – Frank