在 R 中将两个前缀替换为 nothing

replace two prefix with nothing in R

提问人:Mando 提问时间:9/8/2023 最后编辑:Mando 更新时间:9/8/2023 访问量:36

问:

我想删除前缀为 2023 或 2022 的列。

vec = c("2022-10-16", "2022-10-23", "2022-10-30", "2022-11-06", "2023-01-01", "2023-01-15")

我知道这是不正确的,但有类似的东西吗?

gsub("2023" | "2022", "", vec)
r 字符串 文本挖掘 gsub

评论

0赞 Onyambu 9/8/2023
你的意思是去掉这些值吗?当您说列时,这意味着您有一个 DataFrame,并且在给定的示例中没有 DataFrame
0赞 Onyambu 9/8/2023
可能grep("202[23]", vec, value = TRUE, invert= TRUE)

答:

0赞 Mark 9/8/2023 #1
df <- data.frame(
    vec = c("2022-10-16", "2022-10-23", "2022-10-30", "2022-11-06", "2023-01-01", "2023-01-15"),
    value = 1:6)


# if you meant actually meant remove the rows that start with 2023 or 2022, then you can use this:

df[!grepl("^(202[23])", df$vec),]
# or using dplyr:
df %>% dplyr::filter(!grepl("^(202[23])", vec))

# if you wanted to just remove the year from the date, then you can use this:
df$vec <- gsub("^202[23]", "", df$vec)

# or with tidyverse
library(tidyverse)
df |> mutate(vec = str_remove(vec, "^202[23]"))