当sep为>时删除第一个元素

时间:2019-10-21 07:29:26

标签: r

我有一个字符变量

   d > r > t > a > t > r > f

并且要从此选择中删除第一个元素(在本例中为d)。最好的方法是什么?

5 个答案:

答案 0 :(得分:4)

您可以简单地使用substring


a <- substring(a, 2)
# [1] " > r > t > a > t > r > f"

数据

a <- "d > r > t > a > t > r > f"

有关更多信息,请参见?substring

答案 1 :(得分:3)

如果>之间的字符长度是可变的,

z = "d > r > t > a > t > r > f"
> paste(strsplit(z," > ")[[1]][-1],collapse= " > ")
[1] "r > t > a > t > r > f"

z2 = "dew > rd > tewa > adf > ta > eer > ff"
> paste(strsplit(z2," > ")[[1]][-1],collapse= " > ")
[1] "rd > tewa > adf > ta > eer > ff"

答案 2 :(得分:1)

当sep为> 时,可以将subregex 一起使用以删除第一个元素,并保持其余元素不变:

sub(".+?> ", "", "d > r > t > a > t > r > f")
#[1] "r > t > a > t > r > f"

或者您可以使用read.table并使用[-1]删除带有子集的第一个,并使用分隔符>对其进行拆分,例如:

read.table(sep=">", text="d > r > t > a > t > r > f")[-1]
#   V2  V3  V4  V5  V6 V7
#1  r   t   a   t   r   f

或使用strsplittrimws

trimws(strsplit("d > r > t > a > t > r > f", ">")[[1]][-1])
#[1] "r" "t" "a" "t" "r" "f"

答案 3 :(得分:0)

假设您的意思是像{'003'}这样的字符向量,然后只需使用vec <- c("d", "r", "t", "a", "t", "r", "f")删除第一个元素:

vec[-1]

答案 4 :(得分:0)

a <- "d > r > t > a > t > r > f"
substr(r,unlist(gregexpr("[A-z]+\\s*?>\\s*?",r))[2],nchar(r))