R에서 "이름"속성으로 벡터를 정렬하지만 첫 번째 요소는 일정하게 유지하는 방법은 무엇입니까?

Nov 18 2020

다음과 같이 벡터와 그 이름이 있다고 가정합니다.

   vct <- c(67, "apple", 88, "orange", 71)
names(vct) <- c("c1", "b2", "d66", "a65", "a11")

이제 첫 번째 요소 67을 그대로두고 나머지는 이름 순서대로 정렬합니다. "67", "71", "orange", "apple", "88"이 표시되도록합니다.

답변

2 RonakShah Nov 18 2020 at 08:18

이런 뜻인가요?

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" 
2 GKi Nov 18 2020 at 08:22

-1for를 사용 하여 첫 번째 것을 제외하고 나머지는 이름으로 정렬하고 1을 추가하고 1을 추가 할 수 있습니다 c.

vct[c(1, order(names(vct)[-1])+1)]
#      c1      a11      a65       b2      d66 
#    "67"     "71" "orange"  "apple"     "88"