У меня есть вопрос относительно динамического подмножества таблицы данных. Я знаю, что есть много потоков в stackoverflow, которые деноминированы аналогично, но, к сожалению, они не привели меня к поиску решения.Динамическое подмножество таблицы данных
В примере набор данных:
require(data.table)
dt <- data.table(date=c(rep(1,5),rep(2,5)),id=rep(1:5,2),var=c(1:10))
Для каждого идентификатора Я хотел бы найти подмножество все остальные идентификаторы всех периодов прежде. В примере набора данных есть 5 идентификаторов и два периода. Если посмотреть на ID = 5 в периоде 2, то соответствующее подмножество будет соответствовать ID = {1,2,3,4) и date = 1. В этом простом наборе данных я, конечно, могу это запрограммировать вручную:
dt[,dt[-.I][date<2],by=id]
Я, однако, хотел бы сделать это автоматически. Я пробовал что-то вроде
dt[,dt[-.I][date < unique(dt$date[.I])],by=id]
но это не работает, к сожалению.
Любые полезные комментарии оцениваются! Благодаря!
Если вы оцениваете мой вопрос, пожалуйста, оставьте критику, чтобы я мог улучшить вопрос. Благодаря! – chameau13
О, извините за это: в прошлом я рассмотрел некоторые из ваших вопросов, но, думаю, основная идея вопроса (создание огромного количества избыточных данных) ошибочна для большинства приложений (например, вычисление условных вероятностей как в вашем предыдущем q), и что вы попросили его несколько раз раньше. Кроме того, это неопределенное, поскольку вы помещаете «каждый идентификатор ... всех периодов раньше», что на самом деле означает, что вы хотите «каждый идентификатор и дату», как видно из ответов ниже. Соответствующая мета: http://meta.stackexchange.com/q/18552/209360 – Frank
Или, может быть, эта: http://meta.stackexchange.com/questions/8891/is-dont-do-it-a-valid- ответ – Frank