【问题标题】:specifying row position in subset function (R)在子集函数 (R) 中指定行位置
【发布时间】:2021-11-20 20:52:55
【问题描述】:

我在 R 中有以下带有日期的向量

Dates <- structure(list(Date = structure(c(18109, 18140, 18170, 18201, 
18231, 18262, 18293, 18322, 18353, 18383, 18414, 18444, 18475, 
18506, 18536, 18567, 18597, 18628, 18659, 18687, 18718, 18748, 
18779, 18809, 18840, 18871, 18901, 18932, 18962, 18993, 19024
), class = "Date")), row.names = c(NA, -31L), class = c("tbl_df", 
"tbl", "data.frame"))

如果我想对这个向量中的最后两个日期进行子集化,我可以这样做。

subset(Dates, Date >= as.Date('2022-01-01'))

有没有办法在subset 函数中指定我想要的行位置,而不是写出日期'2022-01-01'?我试过subset(Dates, Date &gt;= 30) 但没用

【问题讨论】:

    标签: r subset


    【解决方案1】:

    你可以使用 -

    row_p <- 30
    Dates[row_p:nrow(Dates), ]
    
    #  Date      
    #  <date>    
    #1 2022-01-01
    #2 2022-02-01
    

    dplyr -

    library(dplyr)
    Dates %>% slice(row_p:n())
    

    【讨论】:

      【解决方案2】:

      lhs 应该在同一个类上,即不要在Date 上使用&gt;=,而是围绕“日期”序列构建逻辑

      subset(Dates, seq_along(Date) >=30)
      

      -输出

      # A tibble: 2 × 1
        Date      
        <date>    
      1 2022-01-01
      2 2022-02-01
      

      【讨论】:

        猜你喜欢
        • 2019-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-02
        • 2018-11-20
        • 1970-01-01
        • 2020-07-05
        • 1970-01-01
        相关资源
        最近更新 更多