从向量元素中删除字符

DSSS

我有一个向量字符串:

str.vect<-c ("abcR.1", "abcL.1", "abcR.2", "abcL.2")

 str.vect
[1] "abcR.1" "abcL.1" "abcR.2" "abcL.2"

如何在每个向量元素的右边删除第三个字符?

这是期望的结果:

"abc.1" "abc.1" "abc.2" "abc.2"

提前非常感谢你

尼科

您可以nchar用来查找向量中每个元素的长度

> nchar(str.vect)
[1] 6 6 6 6

然后将其与组合在一起strtrim以获取每个字符串的开头

> strtrim(str.vect, nchar(str.vect)-3)
[1] "abc" "abc" "abc" "abc"

为了获得单词的结尾,您可以使用它substr(实际上,您也可以使用substr来获得开头...)

> substr(str.vect, nchar(str.vect)-1, nchar(str.vect))
[1] ".1" ".1" ".2" ".2"

最后,您使用paste0paste带有sep="")将它们粘在一起

> paste0(strtrim(str.vect, nchar(str.vect)-3), # Beginning
         substr(str.vect, nchar(str.vect)-1, nchar(str.vect))) # End
[1] "abc.1" "abc.1" "abc.2" "abc.2"

如果您知道自己的琴弦具有某些特殊特征,则可以使用更简单的方法

例如,如果长度始终为6,则可以直接将nchar呼叫替换为适当的值。


编辑:或者,R还支持正则表达式,这使此任务更加容易。

> gsub(".(..)$", "\\1", str.vect)
[1] "abc.1" "abc.1" "abc.2" "abc.2"

语法有点晦涩难懂,但是一旦知道了要看的内容就没有那么困难了。

第一个参数(".(..)$")是您要匹配的参数

.匹配任何字符,$表示字符串的结尾。因此...$指示字符串中的最后3个字符。

我们将最后两个放在括号中,以便将它们存储在内存中。

第二个参数告诉我们您要替换匹配的子字符串的内容。在我们的案例中,我们将\\1其表示为“无论在第一对括号中是什么”。

因此,该命令的本质含义是:“在字符串中查找最后三个字符,并用最后两个字符进行更改”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从向量元素中删除字符

来自分类Dev

从向量中删除元素

来自分类Dev

a,根据字符向量中的元素删除重复项

来自分类Dev

C ++删除向量中的元素

来自分类Dev

从向量中删除空元素

来自分类Dev

在字符串向量中删除带有空字符“”的元素

来自分类Dev

有条件地删除R中向量元素的字符

来自分类Dev

如何从向量中删除重复的元素?

来自分类Dev

从列表向量中删除元素C ++

来自分类Dev

如何删除向量的特定元素中的空格?

来自分类Dev

在C ++中删除并推回向量的元素

来自分类Dev

从向量中删除符合条件的元素

来自分类Dev

从向量C ++中删除多个元素

来自分类Dev

如何删除向量的特定元素中的空格?

来自分类Dev

从列表向量中删除元素C ++

来自分类Dev

C ++按值从向量中删除元素

来自分类Dev

从向量中删除符合条件的元素

来自分类Dev

根据索引删除向量中的某些元素

来自分类Dev

按位置删除向量中的元素?

来自分类Dev

如何从对象向量中删除元素?

来自分类Dev

删除向量中的元素需要永远完成

来自分类Dev

动态添加和删除向量中的元素

来自分类Dev

迭代时从向量中删除元素

来自分类Dev

如何从字符向量列表中删除“”

来自分类Dev

从向量中删除字符串

来自分类Dev

R:从字符向量中删除数字

来自分类Dev

从向量中删除字符串

来自分类Dev

删除元素向量Java

来自分类Dev

删除向量的孤立元素