【问题标题】:How to simplify the filter code for given days如何简化给定日期的过滤器代码
【发布时间】:2022-01-06 05:44:25
【问题描述】:

当从数据框中过滤某些天的值时,我必须在过滤条件语句中多次重复“as.Date”。 有什么办法可以简化吗?谢谢!

library(tidyverse)
test_data <- data.frame(mday=seq.Date(as.Date('2021-1-1'),
                        as.Date('2021-12-30'),by="1 day"),
                        value=rnorm(364))
# can't work
test_data %>% filter(mday %in% c(as.Date('2021-1-1','2021-7-1','2021-10-7')))

# can work, but have to repeat 'as.date' many times
test_data %>% filter(mday %in% c(as.Date('2021-1-1'),
                                 as.Date('2021-7-1'),
                                 as.Date('2021-10-7')))

【问题讨论】:

    标签: r tidyverse as.date


    【解决方案1】:

    你很接近。应该是:

    test_data %>% filter(mday %in% as.Date(c('2021-1-1','2021-7-1','2021-10-7')))
    

    这是因为首先您需要创建一个向量,即使用c() 函数,然后您可以对该向量进行修改,在您的情况下 - 将向量更改为date

    【讨论】:

    • 这就是我想要的。谢谢!
    猜你喜欢
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 2020-03-21
    • 2015-02-18
    相关资源
    最近更新 更多