我有一个路径步骤的矢量,并有一个特定的路径步骤,如果它重复我想消除重复。如何删除特定的重复元素后第一个字符矢量
例如,
my_vec = "A > A > X > B > X > X > X > C > C"
现在,如果“X”重复的话,我想消除X的所有重复,除了第一个,同时保留其余元素的顺序,这样我的期望结果是:
my_vec = "A > A > X > B > X > C > C"
,其中重复X从中间被消除。我试着用for-loop和if-else组合,这样我就能检测到矢量中的前一个元素是否也包含'X',然后用NA替换元素,之后我可以删除NA项,但这种方法不能提供理想的结果。
我试过寻找here和here,但这些只是过滤掉了独特的元素,而我想对一个特定的元素执行这个动作。
这里是我的代码:
my_vec <- unlist(str_split(my_vec, '>'))
for (i in length(my_vec)){
if (grepl('X', my_vec[i]) & grepl('X', my_vec[i-1])) {
steps[i] <- NA
} else {
next()
}}
my_new_vec <- str_c(steps, collapse = '>')
但是,输出是完全一样的输入,并没有什么改变为NA。
太棒了!谢谢! – Edgar