Sortuj wiersze w danych.tabela w porządku malejącym na kluczu ciąg `order (-x, v)` daje błąd na data.table 1.9.4 lub wcześniejszym

Powiedzmy, że mam następującedata.table wR:

  library(data.table)
  DT = data.table(x=rep(c("b","a","c"),each=3), y=c(1,3,6), v=1:9)

Chcę zamówić go przez dwie kolumny (powiedz kolumny)x iv). Użyłem tego:

 DT[order(x,v)] # sorts first by x then by v (both in ascending order)

Ale teraz chcę to posortowaćx (w kolejności malejącej) i mają następujący kod:

  DT[order(-x)] #Error in -x : invalid argument to unary operator

Dlatego uważam, że ten błąd wynika z tego, żeclass(DT$x)=character. Czy mógłbyś mi zaproponować rozwiązanie tego problemu?

Wiem, że mogę użyćDT[order(x,decreasing=TRUE)], ale chcę znać składnię, aby sortować według kilku kolumn przy użyciu obu sposobów (niektóre maleją, a niektóre rosną) w tym samym czasie.

Pamiętaj, że jeśli używaszDT[order(-y,v)] wynik jest w porządku, ale jeśli używaszDT[order(-x,v)] tam jest błąd. Moje pytanie brzmi: jak rozwiązać ten błąd?

questionAnswers(3)

yourAnswerToTheQuestion