1

Rの関数を使用して、time-durationsの配列「duration」を作成しましたtapply。配列ベクトルに関連付けられた属性は「character」クラスであり、これが"1" "10" "100" "2" "20" "200"...以下のコードの例のように並べ替えられている理由だと思います。

前述の属性はトリップ番号に関連付けられており、この番号で昇順(1,2,3 ...)で並べ替えたいと思います。order、、へsortの変換などを使用してさまざまな攻撃を試みましdata.frameたが、失敗しました。助けてください!

私のコードは以下の通りです。


tripDur <- function (aDate) {
    difftime(max(aDate), min(aDate), units = "hours")   
}

tmp<- tapply(gps$D_DATE, gps$trip, tripDur)
duration <- tmp; duration

> duration
         1         10        100        101        102        103        104        105 
14.8155556  4.6188889  1.6166667 15.9366667 27.4000000 18.1200000 16.8522222 16.9066667

> str(duration)
num [1:158(1d)] 14.82 4.62 1.62 15.94 27.4 ...
 - attr(*, "dimnames")=List of 1
  ..$ : chr [1:158] "1" "10" "100" "101" ...
4

1 に答える 1

3

これに沿って何かを試してみてください。

> my.vec <- letters[1:5]
> names(my.vec) <- c("1", "10", "5", "100", "13")
> my.vec
  1  10   5 100  13 
"a" "b" "c" "d" "e" 
> my.vec[order(as.numeric(names(my.vec)))]
  1   5  10  13 100 
"a" "c" "b" "e" "d" 
于 2012-07-13T13:01:37.040 に答える