1
我有以下數據集。我想按第二欄排序。按數據中的列進行排序
dat <- read.table(header=TRUE, text="
ID LFrom LTo It1 It2 It3 It4
ab7 1 2 47 152 259 140
ab8 1.1 2.1 88 236 251 145
ab21 1.2 2.1 72 263 331 147
ab3 1 2 71 207 290 242
ab300 1 2 47 152 259 140
ab4 1.2 2.1 72 263 331 147
ab10 1.1 2 71 207 290 242
ab501 1 2 47 152 259 140
")
dat
ID LFrom LTo It1 It2 It3 It4
1 ab7 1.0 2.0 47 152 259 140
2 ab8 1.1 2.1 88 236 251 145
3 ab21 1.2 2.1 72 263 331 147
4 ab3 1.0 2.0 71 207 290 242
5 ab300 1.0 2.0 47 152 259 140
6 ab4 1.2 2.1 72 263 331 147
7 ab10 1.1 2.0 71 207 290 242
8 ab501 1.0 2.0 47 152 259 140
通過使用下面的代碼,我發現:
dat[with(dat, order(LFrom, ID)),]
ID LFrom LTo It1 It2 It3 It4
4 ab3 1.0 2.0 71 207 290 242
5 ab300 1.0 2.0 47 152 259 140
8 ab501 1.0 2.0 47 152 259 140
1 ab7 1.0 2.0 47 152 259 140
7 ab10 1.1 2.0 71 207 290 242
2 ab8 1.1 2.1 88 236 251 145
3 ab21 1.2 2.1 72 263 331 147
6 ab4 1.2 2.1 72 263 331 147
在ID
排序是沒有根據的數值真的來分類的。我通過把多餘的00
和0
(手動),如下面的重寫數據:
dat1 <- read.table(header=TRUE, text="
ID LFrom LTo It1 It2 It3 It4
ab007 1 2 47 152 259 140
ab008 1.1 2.1 88 236 251 145
ab021 1.2 2.1 72 263 331 147
ab003 1 2 71 207 290 242
ab300 1 2 47 152 259 140
ab004 1.2 2.1 72 263 331 147
ab010 1.1 2 71 207 290 242
ab501 1 2 47 152 259 140
")
dat1
ID LFrom LTo It1 It2 It3 It4
1 ab007 1.0 2.0 47 152 259 140
2 ab008 1.1 2.1 88 236 251 145
3 ab021 1.2 2.1 72 263 331 147
4 ab003 1.0 2.0 71 207 290 242
5 ab300 1.0 2.0 47 152 259 140
6 ab004 1.2 2.1 72 263 331 147
7 ab010 1.1 2.0 71 207 290 242
8 ab501 1.0 2.0 47 152 259 140
現在下面的代碼工作正常:
dat1[with(dat1, order(LFrom, ID)), ]
ID LFrom LTo It1 It2 It3 It4
4 ab003 1.0 2.0 71 207 290 242
1 ab007 1.0 2.0 47 152 259 140
5 ab300 1.0 2.0 47 152 259 140
8 ab501 1.0 2.0 47 152 259 140
2 ab008 1.1 2.1 88 236 251 145
7 ab010 1.1 2.0 71 207 290 242
6 ab004 1.2 2.1 72 263 331 147
3 ab021 1.2 2.1 72 263 331 147
我有數據集的大名單。手動更改ID
非常困難。我需要的所有ID
排序(包括00
和0
)。
它通過的參數的順序第一筆訂單列,'LFrom',然後'ID'。它看起來像工作正常。不確定你在問什麼。 –
ID是否遵循您事先知道的一致格式?即一組字符值由一組數值組成。 – misspelled
@mispelled,ID的數值是3位數(最大值),它在開始時具有一致的形式爲「ab」。 –