SORU
10 EYLÜL 2012, PAZARTESİ


Veri satırları Sırala.tablo (R)

Hadi R data.table şu var ki

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

İki sütun (sütun x v say) sipariş etmek istiyorum. Bu kullandım

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

Ama şimdi, x (azalan) göre sıralamak istiyorum ve aşağıdaki kodu var:

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

Bu nedenle, bu hata class(DT$x)=character olması nedeniyle olduğunu düşünüyorum. Bu sorunu çözmek için bana herhangi bir öneri verebilir misiniz?

DT[order(x,decreasing=TRUE)], kullanabilirim biliyorum ama aynı anda birden fazla sütun her iki yönde kullanarak bazı azalan, bazı artan) göre sıralamak için sözdizimi bilmek istiyorum.

Eğer sonuç tamam, ama eğer DT[order(-x,v)] kullanıyorsanız DT[order(-y,v)] kullanırsanız bir hata olduğunu unutmayın. Bu hata çözmek için nasıl? Peki, sorum şu:

CEVAP
10 EYLÜL 2012, PAZARTESİ


DT[order(-rank(x), y)] kullanabilirsiniz.

   x y v
1: c 1 7
2: c 3 8
3: c 6 9
4: b 1 1
5: b 3 2
6: b 6 3
7: a 1 4
8: a 3 5
9: a 6 6

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 365multimedia

    365multimedi

    26 ŞUBAT 2009
  • Google

    Google

    18 EYLÜL 2005
  • Julian Smith

    Julian Smith

    31 EKİM 2006