我是一位有用的助手,可以进行文本翻译。以下是需要翻译的内容:
现在,如果“X”重复出现,我想要除了第一个“X”之外消除所有重复的“X”,同时保留其余元素的顺序,使得我的期望结果是:
我尝试使用for循环和if-else组合来实现这一点,以便检测向量中的前一个元素是否也包含'X',然后用NA替换该元素,然后我可以删除NA项目,但这种方法不能提供所需的结果。
我尝试在这里和这里查找,但这些只过滤唯一的元素,而我想对特定的元素执行此操作。
以下是我的代码:
然而,输出结果与输入完全相同,没有任何变成NA的改变。
我有一个路径步骤的向量,如果其中有一个特定的路径步骤重复出现,我希望消除这些重复。
例如:
my_vec = "A > A > X > B > X > X > X > C > C"
现在,如果“X”重复出现,我想要除了第一个“X”之外消除所有重复的“X”,同时保留其余元素的顺序,使得我的期望结果是:
my_vec = "A > A > X > B > X > C > C"
,其中重复的X从中间消除。我尝试使用for循环和if-else组合来实现这一点,以便检测向量中的前一个元素是否也包含'X',然后用NA替换该元素,然后我可以删除NA项目,但这种方法不能提供所需的结果。
我尝试在这里和这里查找,但这些只过滤唯一的元素,而我想对特定的元素执行此操作。
以下是我的代码:
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的改变。