Я нигде не смог найти ответ на свой вопрос. У меня есть R-фрейм данных, и я хотел бы отфильтровать по значению столбца, если условие выполняется в другом столбце, иначе значение не должно быть отфильтровано, и в идеале я бы сделал это с помощью Dplyr.
В случае моего фрейма данных я хотел бы отфильтровать эти значения (третий столбец) меньше 1 только в тех случаях, когда тип является "реальным".
# My Dataframe
dat = data.frame(dte = c("2011-01-01","2011-02-01","2011-03-01","2011-04-01","2011-05-01",
"2011-01-01","2011-02-01","2011-03-01"),
type = c("real","real","real","real","real","ts","ts","ts"),
value=rnorm(8))
# Desired output
dte type value
1 2011-01-01 real -1.0852682
3 2011-03-01 real -0.6664113
4 2011-04-01 real -0.7394061
5 2011-05-01 real -2.3819627
6 2011-01-01 ts -1.2122576
7 2011-02-01 ts 1.0923944
8 2011-03-01 ts -2.0373596
Я пытался это, но это не сработало вообще.
dat1 <- dat %>% filter(if(type == "real") value < 1 else value == value )
Кто-нибудь может дать мне любую идею?
Большое спасибо!
Рэйчел