【发布时间】:2020-01-29 09:46:04
【问题描述】:
我无法在任何地方找到我的问题的答案。我有一个 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 )
谁能给我任何想法?
非常感谢!
瑞秋
【问题讨论】: