我有一個路徑步驟的矢量,並有一個特定的路徑步驟,如果它重複我想消除重複。如何刪除特定的重複元素後第一個字符矢量
例如,
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