R语言 如何翻案?

6jjcrrmo  于 2023-06-19  发布在  其他
关注(0)|答案(2)|浏览(142)

我想要一个函数,它接受一个字符串(而不是向量)并反转该字符串中的单词。
比如说

rev_sentence("hi i'm five")
## [1] "five i'm hi"

我有一个函数,可以反转单个字符,但不能反转字符串,本质上是一个句子。

fnatzsnv

fnatzsnv1#

R中,我们可以使用strsplit在一个或多个空格处拆分,然后反转元素和paste一起

sapply(strsplit(str1, "\\s+"), function(x) paste(rev(x), collapse=" "))
#[1] "five i'm hi"

如果只有一个字符串,则

paste(rev(strsplit(str1, "\\s+")[[1]]), collapse= " ")
#[1] "five i'm hi"

Python中,选项是在反转后选择splitjoin[::-1]

" ".join("hi i'm five".split()[::-1])
#"five i'm hi"

或者使用reversed

" ".join(reversed("hi i'm five".split()))
#"five i'm hi"

数据

str1 <- "hi i'm five"
m1m5dgzv

m1m5dgzv2#

下面是一个类似的答案,但使用的是tidyverse函数:

x <- paste("hi i'm", c("five", "six", "seven"))

library(stringr)
purrr::map_chr(x, ~ str_flatten(rev(str_split_1(.x, "\\s")), " "))
# "five i'm hi"  "six i'm hi"   "seven i'm hi"

相关问题