R语言 如何在字符串中交换子串?

ldioqlga  于 2023-04-09  发布在  其他
关注(0)|答案(3)|浏览(90)

假设我有以下字符串:

x <-  "22-03-23"

考虑到这一点,并考虑到任何其他类似的字符串具有相同的格式,我希望能够交换的位置“22”与“23”在一个自动的方式。
因此,结果应为:

"23-03-22"

代码需要从这些数字中抽象出来,并以相同的格式在任何其他场景中工作。
有人能帮我吗?

o3imoua4

o3imoua41#

您可以:

x <- c("22-03-23", "01-04-20")
gsub("(.*)(-.*-)(.*)", "\\3\\2\\1", x)
#[1] "23-03-22" "20-04-01"
hzbexzde

hzbexzde2#

"-"上拆分,然后反转并将其 * 粘贴 * 回一起,或使用 as.Date

x <-  c("22-03-23", "01-04-20")

sapply(strsplit(x, split = "-", fixed = TRUE), function(i) paste(rev(i), collapse = "-"))
# [1] "23-03-22" "20-04-01"

as.Date(x, format = "%d-%m-%y")
# [1] "2023-03-22" "2020-04-01"

如果需要,我们可以设置打印日期的格式:

format(as.Date(x, format = "%d-%m-%y"), "%y-%m-%d")
# [1] "23-03-22" "20-04-01"
qyzbxkaa

qyzbxkaa3#

library(dplyr)
x <- "22-03-23"
result <- x %>%
  str_split("-") %>%
  unlist() %>%
  rev() %>%
  paste(collapse = "-")
print(result)  # prints "23-03-22"

# Using base R
x <- "22-03-23"
parts <- strsplit(x, "-")[[1]]
result <- paste(rev(parts), collapse = "-")
print(result)  # prints "23-03-22"

相关问题