R 移动子字符串列表末尾的特定字符串元素

R 移动子字符串列表末尾的特定字符串元素,r,substring,R,Substring,我有一根像 'a,x,y,b;x、 b' 现在,我想在每个子字符串的末尾移动一个特定的字符串,如x,保持其他元素的顺序相同,这样的结果如下所示: 'a,y,b,x;b、 x' 为了获得结果,我首先尝试使用分号(;)将字符串拆分为子字符串 > unlist(strsplit('a,x,b,y;x,b',';')) [1] "a,x,b,y" "x,b" 然后再次使用逗号(;)将子字符串拆分为字符串元素: > strsplit(unlist(strsplit('x,b,y;x,b'

我有一根像

'a,x,y,b;x、 b'

现在,我想在每个子字符串的末尾移动一个特定的字符串,如
x
,保持其他元素的顺序相同,这样的结果如下所示:

'a,y,b,x;b、 x'

为了获得结果,我首先尝试使用分号(
)将字符串拆分为子字符串

> unlist(strsplit('a,x,b,y;x,b',';'))
[1] "a,x,b,y" "x,b"  
然后再次使用逗号(
)将子字符串拆分为字符串元素:

> strsplit(unlist(strsplit('x,b,y;x,b',';')),',')
[[1]]
[1] "a" "x" "b" "y"

[[2]]
[1] "x" "b"

但是我应该如何移动每个子字符串末尾的元素
“x”
,然后再次组合字符串以获得所需的结果
'a,y,b,x;b、 x'

获取字符串,提取x元素,获取所有非x元素,并将x放在该字符串的末尾。然后把所有的东西粘在一起

x <- strsplit(unlist(strsplit('x,b,y;x,b',';')),',')
x_end <- lapply(x, function(x1) paste(c(x1[x1 != "x"], x1[x1 == "x"]), collapse = ","))
paste(unlist(x_end), collapse = ";")
x