【问题标题】:get difference of non-na dates based on condition根据条件获取非 na 日期的差异
【发布时间】:2021-12-30 06:40:28
【问题描述】:

我正在尝试构建的逻辑如下

我的表中有 4 个日期列 date,date1,date2,date3

如果 date & date1 不为空(非空白),x=date-date1 否则 date & date2 不为空,x= date-date2 否则 date &date3 不为空,x = date-date3 .. 其中 x 是我要推导的指标。

我在 jupyter 中测试了下面的代码,它工作正常,因为我能够验证。

df$ttf <- ifelse((!is.na(df$date) & !is.na(df$date1)), df$ttf <- mondf(df$date1,df$date),
                 ifelse((!is.na(df$date) & !is.na(df$date2)), df$ttf <- mondf(df$date2,df$date),
                        ifelse((!is.na(df$date) & !is.na(df$date3)), df$ttf <- mondf(df$date3,df$date),
                               NA)))

              

但是,当我在 GCP 中运行此作业时,我遇到了错误

object of type 'closure' is not subsettable "

【问题讨论】:

    标签: r date if-statement data-manipulation


    【解决方案1】:

    试试这个,如果它能让你前进。应该删除ifelse 中的df$ttf &lt;-

    df <- transform(df, ttf=ifelse(!is.na(date) & !is.na(date1), date1 - date, 
                                  ifelse(!is.na(date) & !is.na(date2), date2 - date, 
                                         ifelse(!is.na(date) & !is.na(date3), date3 - date, 
                                                NA))))
    df
    #         date      date1      date2      date3 ttf
    # 1 2021-01-01 2021-03-12 2021-05-21 2021-07-30  70
    # 2 2021-01-15 2021-03-26 2021-06-04 2021-08-13  70
    # 3 2021-01-29 2021-04-09 2021-06-18 2021-08-27  70
    # 4 2021-02-12 2021-04-23 2021-07-02 2021-09-10  70
    # 5 2021-02-26 2021-05-07 2021-07-16 2021-09-24  70
    # 6 2021-03-12 2021-05-21 2021-07-30 2021-10-08  70
    

    数据:

    df <- structure(list(date = structure(c(18628, 18642, 18656, 18670, 
    18684, 18698), class = "Date"), date1 = structure(c(18698, 18712, 
    18726, 18740, 18754, 18768), class = "Date"), date2 = structure(c(18768, 
    18782, 18796, 18810, 18824, 18838), class = "Date"), date3 = structure(c(18838, 
    18852, 18866, 18880, 18894, 18908), class = "Date")), class = "data.frame", row.names = c(NA, 
    -6L))
    

    【讨论】:

    • 是变形吗?我也可以使用 mondf 函数来获取日期差异吗?
    • @AshishPandey 是的,抱歉打错了!
    • 非常感谢,它适用于大数据..干杯!
    猜你喜欢
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多