首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >str_splt_fixed从右到左

str_splt_fixed从右到左
EN

Stack Overflow用户
提问于 2015-11-11 02:03:09
回答 1查看 315关注 0票数 2

我已经试过寻找这个,我相信答案在外面,但没有运气。

我正在尝试使用stringr包,但是要让它从右到左读取文本行。

代码语言:javascript
复制
library(stringr)
fruits <- c("apples and oranges and pears and bananas", "pineapples and mangos and guavas")
str_split_fixed(fruits, " and ", 3)

这将返回:

代码语言:javascript
复制
"apples"     "oranges" "pears and bananas"
"pineapples" "mangos" "guavas"

我想让它回来:

代码语言:javascript
复制
"apples and oranges" "pears" "bananas"
"pineapples" "mangos" "guavas"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-11 02:30:26

它可能不是基本的,stringrstringi,但是您可以自己实现它:

代码语言:javascript
复制
sapply(stri_split_fixed(stri_reverse(fruits), " dna ", 3)[[1]], stri_reverse, USE.NAMES=FALSE)
## [1] "bananas"            "pears"              "apples and oranges"

对于更大的示例数据:

代码语言:javascript
复制
fruits <- c("apples and oranges and pears and bananas", 
            "pineapples and mangos and guavas")

do.call(rbind, lapply(stri_reverse(fruits), function(x) {
  rev(sapply(stri_split_fixed(x, " dna ", 3)[[1]], stri_reverse, USE.NAMES=FALSE))
}))

##      [,1]                 [,2]     [,3]              
## [1,] "apples and oranges" "pears"  "bananas"
## [2,] "pineapples"         "mangos" "guavas" 

另外,理查改编的一个修改版本:

代码语言:javascript
复制
matrix(rev(stri_reverse(str_split_fixed(stri_reverse(fruits), 
                                        stri_reverse(" and "), 3))),
       nrow=length(fruits), ncol=3, byrow=TRUE)

效率更高。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33643075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档