R在SQL中与case等价?

R在SQL中与case等价?,sql,r,case,case-when,Sql,R,Case,Case When,我已经使用T-SQL有一段时间了,但现在我必须转换到R select case when date_column_1 < '20160801' then date_column_1 else '20160801' end as date_column_1, case when date_column_2 < '99991231' then '20190701' else date_column_2 end as date_column_2 from table 从表中选择日期列1

我已经使用T-SQL有一段时间了,但现在我必须转换到R

select case when date_column_1 < '20160801' then date_column_1 else '20160801' end as date_column_1, case when date_column_2 < '99991231' then '20190701' else date_column_2 end as date_column_2 from table
从表中选择日期列1<'20160801'时的案例,然后选择日期列1其他'20160801'结束为日期列1,日期列2<'9991231'时的案例,然后选择'20190701'其他日期列2结束为日期列2

另外,我还要用蹩脚的堆栈溢出格式技巧提前道歉

因为每个列只需要检查一个条件,所以我们可以在这里使用
ifelse
。如果存在多种情况,您可以在
dplyr
中检查
case\u

transform(table, date_column_1 = ifelse(date_column_1 < as.Date('2016-08-01'), 
                                        date_column_1, as.Date('2016-08-01')), 
                 date_column_2 = ifelse(date_column_2 < as.Date('9999-12-31'),
                                        as.Date('2019-07-01'), date_column_2))

?pmin
对于与之相关的平行最小声音
pmin('20160801',c('20160701','20160801','20160901'))
例如。@G.Grothendieck谢谢。用
if\u else
更新答案。
library(dplyr)

table %>%
   mutate(date_column_1 = if_else(date_column_1 < as.Date('2016-08-01'), 
                            date_column_1, as.Date('2016-08-01')), 
          date_column_2 = if_else(date_column_2 < as.Date('9999-12-31'),
                            as.Date('2019-07-01'), date_column_2)))