根据条件获取非 na 日期的差异
get difference of non-na dates based on condition
我尝试构建的逻辑如下
我的 table 日期、日期 1、日期 2、日期 3
中有 4 个日期列
如果 date & date1 非空(非空白),x=date-date1
else date & date2 非空,x= date-date2
else 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 "
试试这个,如果它能让你进步。 ifelse
中的df$ttf <-
应该删除。
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))
我尝试构建的逻辑如下
我的 table 日期、日期 1、日期 2、日期 3
中有 4 个日期列如果 date & date1 非空(非空白),x=date-date1 else date & date2 非空,x= date-date2 else 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 "
试试这个,如果它能让你进步。 ifelse
中的df$ttf <-
应该删除。
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))