-2

我目前有我的 R 列向量日之一

Levels: D1 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D2 D20 D21 D22 D23 D24 D25 D26 D27 D28 D29 D3 D30 D31 D4 D5 D6 D7 D8 D9

想将其重新调整为

Levels: D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 ... D31

我们如何在 R 中做到这一点relevel()?非常感谢。

4

1 回答 1

1

虽然可以使用该relevel功能,但它会比需要的复杂得多。您可以只使用gtools 包中的factor函数和函数来执行此操作:mixedsort

> library(gtools)
> tmp2 <- factor( sample( paste0("D", 1:25), 100, TRUE ) )
> tmp2
  [1] D19 D2  D24 D4  D6  D13 D4  D16 D3  D13 D14 D3  D5  D23 D14 D3  D23 D9 
 [19] D4  D19 D15 D10 D19 D17 D5  D21 D15 D22 D1  D9  D13 D8  D25 D12 D6  D23
 [37] D11 D13 D19 D12 D12 D11 D20 D11 D8  D13 D18 D25 D14 D15 D18 D23 D22 D1 
 [55] D4  D20 D13 D7  D3  D12 D9  D8  D10 D13 D2  D5  D1  D13 D14 D13 D4  D2 
 [73] D21 D9  D21 D24 D25 D21 D20 D11 D17 D2  D7  D12 D13 D6  D13 D21 D3  D3 
 [91] D15 D9  D7  D13 D25 D2  D2  D8  D10 D3 
25 Levels: D1 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D2 D20 D21 D22 ... D9
> tmp2 <- factor(tmp2, levels=mixedsort(levels(tmp2)))
> tmp2
  [1] D19 D2  D24 D4  D6  D13 D4  D16 D3  D13 D14 D3  D5  D23 D14 D3  D23 D9 
 [19] D4  D19 D15 D10 D19 D17 D5  D21 D15 D22 D1  D9  D13 D8  D25 D12 D6  D23
 [37] D11 D13 D19 D12 D12 D11 D20 D11 D8  D13 D18 D25 D14 D15 D18 D23 D22 D1 
 [55] D4  D20 D13 D7  D3  D12 D9  D8  D10 D13 D2  D5  D1  D13 D14 D13 D4  D2 
 [73] D21 D9  D21 D24 D25 D21 D20 D11 D17 D2  D7  D12 D13 D6  D13 D21 D3  D3 
 [91] D15 D9  D7  D13 D25 D2  D2  D8  D10 D3 
25 Levels: D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 ... D25
> 
于 2013-09-07T17:50:47.090 回答