如何删除带有配对数字的行?

bic*_*ton 4 r

对于这个文件:

  dat=structure(list(V1 = c("1901-01-16", "1901-01-16", "1901-02-15", 
  "1901-02-15", "1901-03-16", "1901-03-16"), V4 = c(12.5, 10, 13.1, 
  30, 12.8, 5)), row.names = c(NA, 6L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

我想删除第 2,4,6,8 行,直到最后,并用 01 输出替换 1901-01- 之后的任何内容:

 1901-01-01 12.5
 1901-02-01 13.1
 1901-03-01 12.8
 
Run Code Online (Sandbox Code Playgroud)

akr*_*run 6

在 中base R,使用回收逻辑向量删除偶数行,然后使用transform,将“V1”转换为Date类并format添加01as day

transform(dat[c(TRUE, FALSE),], V1 = format(as.Date(V1), '%Y-%m-01'))
Run Code Online (Sandbox Code Playgroud)

-输出

          V1   V4
1 1901-01-01 12.5
3 1901-02-01 13.1
5 1901-03-01 12.8
Run Code Online (Sandbox Code Playgroud)

或使用tidyverse-slice行并使用floor_date

library(dplyr)
library(lubridate)
dat %>% 
   slice(seq(1, n(), by = 2)) %>%
   mutate(V1 = floor_date(as.Date(V1), "month"))
Run Code Online (Sandbox Code Playgroud)