gpt4 book ai didi

仅反转 R 中字符串中的字母模式

转载 作者:行者123 更新时间:2023-12-04 11:52:41 24 4
gpt4 key购买 nike

我正在尝试学习 R 并且一个示例问题是要求仅反转按字母顺序排列的字符串的一部分:

String: "abctextdefgtext"    
StringNew: "cbatextgfedtext"

有没有办法识别字母模式来做到这一点?

最佳答案

这是 base R 的一种方法基于示例中显示的模式。我们将字符串拆分为单个字符('v1'),使用 match要找到字符位置与字母位置( letters )的位置,获取索引的差异并检查它是否等于 1('i1')。使用逻辑向量,我们对向量 ('v1') 进行子集化,创建一个分组变量并反转 ( rev ) vector基于分组变量。最后,paste字符一起得到预期的输出

v1 <- strsplit(str1, "")[[1]]
i1 <- cumsum(c(TRUE, diff(match(v1, letters)) != 1L))
paste(ave(v1, i1, FUN = rev), collapse="")
#[1] "cbatextgfedtext"

或者正如评论中提到的@alexislaz
 v1 = as.integer(charToRaw(str1))
rawToChar(as.raw(ave(v1, cumsum(c(TRUE, diff(v1) != 1L)), FUN = rev)))
#[1] "cbatextgfedtext"

编辑:

1) 根据@alexislaz 的评论纠正了一个错误

2) 更新了@alexislaz 在评论中建议的另一种方法

数据
str1 <- "abctextdefgtext"

关于仅反转 R 中字符串中的字母模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43394297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com