【发布时间】:2021-10-21 18:53:10
【问题描述】:
我在下面有一个示例 df(日期格式为 as.Date):
| date |
--------------
| 2020-03-03 |
| 2020-06-30 |
| 2020-01-23 |
| 2020-02-10 |
| 2020-11-29 |
我正在尝试根据截止日期 2020-05-01 添加一列,并希望获得此表:
| date | cutoff |
------------------------
| 2020-03-03 | prior |
| 2020-06-30 | later |
| 2020-01-23 | prior |
| 2020-02-10 | prior |
| 2020-11-29 | later |
我使用 dplyr 并调用了 mutate 来创建一个列,并最初应用了 case_when:
df %>%
mutate(cutoff = case_when(
date < 2020-05-01 ~ "prior",
"later"
))
上面的代码创建了只有“后来”值的截止列。
我也试过 ifelse:
df <- with(df, ifelse(date < 2020-05-01, "prior", "later"))
上面的代码将日期列中的值替换为 NA 值。
我尝试了不同的代码:
df %>%
mutate(cutoff = case_when(date < 2020-05-01 ~ "prior",
TRUE ~ "later"))
但结果与我尝试的第一个代码相同。
我想将日期转换为 POSixct 格式,但上面的每个代码都产生了与上面相同的输出。
【问题讨论】:
-
您尝试将
2020-05-01包裹在as.Date()中吗? -
我刚试过,但日期已经在正确的日期,但它仍在询问原始值。在这种情况下,我应该用什么来补充原始日期?
-
您能否使用
dput(df)将您的示例数据框发布到您的问题中? -
我不确定我是否做得对:Df
-
日期应包含在
"中。dput()返回一个可以轻松导入的结构,并显示数据的真实结构。在此基础上,可以创建可能的解决方案。如果可能,您应该显示您正在使用的部分数据(如前所述,您确实在实际数据上尝试了一些代码)。dput(YourDataFrame)或dput(head(YourData))应该给出预期的结构输出。