Sim*_*mel 2 string r function vector
假设我们有一些如下所示的二元素字符串向量A, B, C, ...。我们只知道保存为 object 的元素之一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"
Run Code Online (Sandbox Code Playgroud)
您可以创建一个辅助函数来将特定值移动到向量的末尾
move_last <- function(x, v) {
c(setdiff(x, v), intersect(x,v))
}
Run Code Online (Sandbox Code Playgroud)
这适用于给定的向量
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"
Run Code Online (Sandbox Code Playgroud)