假设我们有一些二元素字符串向量,如下所示
A, B, C, ...
。我们只知道保存为对象的元素之一second
。
有没有办法让
second
始终是A, B, C, ...
中的第二个元素?
A = c("time","prof") # --> must become `c("prof", "time")`
B = c("prof", "time") # --> remains Unchanged
C = c("time","ziba") # --> must become `c("ziba", "time")`
second = "time"
您可以创建一个辅助函数来将特定值移动到向量的末尾
move_last <- function(x, v) {
c(setdiff(x, v), intersect(x,v))
}
这适用于给定的向量
move_last(A, second)
# [1] "prof" "time"
move_last(B, second)
# [1] "prof" "time"
move_last(C, second)
# [1] "ziba" "time"
move_last(c("apple", "banana"), second)
# [1] "apple" "banana"