Пример данных:Выбор строки из кадра данных в соответствии с другим вектором, в том числе повторов
dates=seq(as.POSIXct("2015-01-01 00:00:00"), as.POSIXct("2015-01-07 00:00:00"), by="day")
data=rnorm(7,1,2)
groupID=c(12,14,16,24,35,46,54)
DF=data.frame(Date=dates,Data=data,groupID=groupID)
BB=c(12,12,16,24,35,35)
DF[DF$groupID %in% BB,]
Date Data groupID
1 2015-01-01 4.4104202 12
3 2015-01-03 2.1557735 16
4 2015-01-04 -0.9880946 24
5 2015-01-05 -0.3396025 35
мне нужно фильтровать кадр DF
данных в соответствии со значениями в моем векторе BB
, которые соответствуют столбец GroupID. Однако, если BB
содержит повторения, это не отражается в результате.
Поскольку мой вектор BB
включает в себя два значения 1, и два из 5, выход должен быть на самом деле:
Date Data groupID
1 2015-01-01 4.4104202 12
1 2015-01-01 4.4104202 12
3 2015-01-03 2.1557735 16
4 2015-01-04 -0.9880946 24
5 2015-01-05 -0.3396025 35
5 2015-01-05 -0.3396025 35
Есть ли способ для достижения этой цели? И сохранить порядок вектора BB
, если это возможно?
Хммм, 'DF [BB,]'? –
Я вижу, как мой вопрос наткнулся на этот путь. Я отредактировал его сейчас. Мой вектор «BB» должен соответствовать столбцу groupID, поэтому я не могу использовать ярлыки строк, которых я боюсь. – sym246
Может быть, 'DF [match (BB, DF $ groupID),]' then? –