我已经试过寻找这个,我相信答案在外面,但没有运气。
我正在尝试使用stringr包,但是要让它从右到左读取文本行。
library(stringr)
fruits <- c("apples and oranges and pears and bananas", "pineapples and mangos and guavas")
str_split_fixed(fruits, " and ", 3)这将返回:
"apples" "oranges" "pears and bananas"
"pineapples" "mangos" "guavas"我想让它回来:
"apples and oranges" "pears" "bananas"
"pineapples" "mangos" "guavas"发布于 2015-11-11 02:30:26
它可能不是基本的,stringr或stringi,但是您可以自己实现它:
sapply(stri_split_fixed(stri_reverse(fruits), " dna ", 3)[[1]], stri_reverse, USE.NAMES=FALSE)
## [1] "bananas" "pears" "apples and oranges"对于更大的示例数据:
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" 另外,理查改编的一个修改版本:
matrix(rev(stri_reverse(str_split_fixed(stri_reverse(fruits),
stri_reverse(" and "), 3))),
nrow=length(fruits), ncol=3, byrow=TRUE)效率更高。
https://stackoverflow.com/questions/33643075
复制相似问题