【问题标题】:Nested ifelse in column containing dates in R在包含 R 中日期的列中嵌套 ifelse
【发布时间】:2021-11-11 01:55:30
【问题描述】:

我是 R 新手,我正在尝试一个简单的嵌套 ifelse 操作,我希望 view_date 应该位于 start_dateend_date 之间。

我以前在excel中做这个,但是由于数据集太大而excel无法处理,我将它切换到R。你能帮我吗?

查询:

df1$check <- ifelse(df1$view_date>=df1$start_date,
  ifelse(df1$view_date<=df1$end_date,1,0),0)

错误:charToDate(x) 中的错误: 字符串不是标准的明确格式**

【问题讨论】:

  • 你能试试df1$view_date &lt;- as.Date(df1$view_date)df1$start_date &lt;- as.Date(df1$start_date)df1$end_date &lt;- as.Date(df1$end_date)吗?我不确定您的日期内容的格式是否未显示。
  • 如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: r datetime for-loop if-statement nested-if


【解决方案1】:

这里是tidyverse 方法与case_when

library(dplyr)

df1 %>% 
  mutate(check = case_when(
    view_date >= start_date & view_date <= end_date ~ 1
    view_date >= start_date & view_date  > end_date ~ 0,
    TRUE ~ 0
   ))

【讨论】:

    猜你喜欢
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    相关资源
    最近更新 更多