假设我有一个向量,其名称如下:
vct <- c(67, "apple", 88, "orange", 71)
names(vct) <- c("c1", "b2", "d66", "a65", "a11")
现在,我希望第一个元素67保持原样,并按照名称的顺序排列其余元素。使得它看起来:";67〃"71〃"橙色"苹果"88〃;。
你的意思是这样的吗?
first <- 67
inds <- match(first, vct)
result <- vct[c(inds, setdiff(order(names(vct)), inds))]
result
# c1 a11 a65 b2 d66
# "67" "71" "orange" "apple" "88"
您可以使用-1
排除第一个,按名称排序其余部分,添加1和c
,并使用1:
vct[c(1, order(names(vct)[-1])+1)]
# c1 a11 a65 b2 d66
# "67" "71" "orange" "apple" "88"