我有一个字符变量
d > r > t > a > t > r > f
并且要从此选择中删除第一个元素(在本例中为d)。最好的方法是什么?
答案 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为> 时,可以将sub
与regex
一起使用以删除第一个元素,并保持其余元素不变:
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
或使用strsplit
和trimws
:
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))