[R] confusion on levels() function, and how to assign a wanted order to factor levels, intentionally?

xavier.chardon at free.fr xavier.chardon at free.fr
Tue Jun 16 09:57:35 CEST 2009


Hi,

The way you do it actually renames the factors one after each other (it replaces the values in the data frame, which is not what you want).
Have a look at this code:

test <- data.frame(id=c(1,2,3), fac=c("lv1", "lv2", "lv3") )
levels(test$fac)
test$fac2 <- factor(test$fac, levels=c("lv3", "lv2", "lv1"))
levels(test$fac2)
test

HTH,

Xavier

----- Mail Original -----
De: "Mao Jianfeng" <jianfeng.mao at gmail.com>
À: r-help at r-project.org
Envoyé: Mardi 16 Juin 2009 09h14:01 GMT +01:00 Amsterdam / Berlin / Berne / Rome / Stockholm / Vienne
Objet: [R] confusion on levels() function, and how to assign a wanted order to 	factor levels, intentionally?

Dear R-helpers,

I want to make a series of boxplots on several numeric univariates with two
group variables (species and population, population nested in species, and
with population as the X-axis). In order to get a proper order of the
individual populations in X-axis, I need to assign a wanted order to the
factor (population). I used the levels() function to do this assignment, but
it seemed levels() function not only changed the levels of the factor, but
also the correlations of the  factor and the numeric variables.

I am confused. And, I want to know how to assign a wanted order to factor
levels, intentionally? I think assignment is also indispensible for others
who are do data analysing using R. Can you help me?

Thank you a lot in advance.

Best regards,
Mao J-F

data, code, and results I used and got are as followed:
(You can find that the correlations of the  factor and the numeric variables
changed, before and after the levels() was performed.)


> d<-read.delim("All.txt",header=T)
> d
   species population conlen tscale fscale tseen    w100s nfsee
1       Py     YXPy01   8.60    153     69   111 1.680851    94
2       Py     YXPy01   8.10    173     74   139 1.848485   133
3       Py     YLPy01   6.50    138     58    99 1.520833    48
4       Py     YLPy01   5.90    153     67   118 1.355140   107
5       Py     KMPy01   6.10    113     48    75 1.470588    51
6       Py     KMPy01   5.10    129     54   100 1.176471    68
7       Py     KMPy01   3.90    109     37    30 1.500000    22
8       Py     KMPy01   5.00    128     55    71 1.468750    64
9       Py     KMPy01   4.70    132     54    32 1.500000    28
10      Py     KMPy01   5.80    113     52    65 1.136364    45
11      Py     KMPy01   4.70    114     42    71 1.131148    61
12      Py     KMPy01   5.00    120     77   131 1.403361   119
13      Py     GSPy02   6.20    152     59   102 1.348837    43
14      Py     GSPy02   6.20    111     41    64 2.805556    36
15      Py     GSPy02   6.70    130     56    67 1.757576    33
16      Py     GSPy02   6.60    115     47    78 1.603175    63
17      Py     GSPy02   8.90    137     61   102 1.767677    99
18      Py     GSPy02   6.20    157     68   115 1.459016    61
19      Py     BCPy01   5.30     91     39    24 1.263158    19
20      Py     BCPy01   6.10    100     46    53 1.117647    17
21      Py     BCPy01   4.50     81     32    46 1.320000    25
22      Py     LJPy01   6.60    170     65    72 2.035714    56
23      Py     LJPy01   6.90    104     46    58 1.800000    55
24      Py     LJPy01   8.60    161     66    38 1.794118    34
25      Py     LJPy01   5.40    123     40    22 2.428571    21
26      Py     LJPy01   6.80    123     54    57 2.044444    46
27      Py     LJPy01   8.60    166     77    77 1.847458    59
28      Py     LJPy01   6.00    132     51    91 1.119048    84
29      Py     LJPy01   6.80    108     45    27 1.814815    27
30      Py     LJPy01   6.20    115     48    70 1.765957    47
31      Py     LJPy01   8.00    168     80   132 2.036364   111
32      Pd     CYPd01   6.70    138     57    23 1.555556     9
33      Pd     CYPd01   6.80    121     46    53 1.973684    38
34      Pd     CYPd01   5.90    114     52    60 1.250000    12
35      Pd     CYPd01   5.20    119     53    53 1.432432    37
36      Pd     CYPd01   7.60    118     46    63 2.000000    23
37      Pd     CYPd01   6.10    144     61    24 1.428571    14
38      Pd     CYPd01   5.50    130     46    62 1.320000    54
39      Pd     CYPd01   6.60    153     57    83 1.558442    77
40      Pd     CYPd02   5.90    111     32    51 1.300000    10
41      Pd     CYPd02   7.10    121     51    80 1.451613    31
42      Pd     CYPd02   7.30    150     68   127 1.681416   113
43      Pd     CYPd02   5.60    121     38    64 1.228571    36
44      Pd     CYPd02   7.20    140     62    88 1.585366    41
45      Pd     CYPd02   6.10    113     54    91 1.256757    74
46      Pd     CYPd03   4.60    109     45    57 1.093750    32
47      Pd     CYPd03   4.90    115     44    45 1.235294    17
48      Pd     CYPd03   6.40    134     44    64 1.209302    45
49      Pd     CYPd03   4.60     96     42    41 1.150000    21
50      Pd     CYPd03   5.60    131     43    45 1.771429    35
51      Pd     CYPd03   6.10    124     48    59 1.578947    38
52      Pd     CYPd03   5.20    110     57    71 1.340426    47
53      Pd     CYPd03   5.50    118     57    83 1.625000    48
54      Pd     CYPd03   6.10    106     61    95 1.559322    60
55      Pd     CYPd03   6.20    121     64   100 1.707692    65
56      Pd     CYPd03   5.10     99     38    28 1.430000    20
57      Pd     CYPd03   5.10    132     45    47 1.791667    24
58      Pd     YLPd01   6.15    120     43    46 1.446000    21
59      Pt     BXPd01   4.60     64     18    23 2.166667    18
60      Pt     BXPd01   5.10     87     26    38 2.250000    32
61      Pt     BXPd01   4.80     89     27    50 2.130435    46
62      Pt     BXPd01   6.00     97     29    31 2.684211    19
63      Pt     BXPd01   5.20     98     32    54 2.292683    41
64      Pt     GYPt01   4.30     98     27     8 4.000000     5
65      Pt     GYPt01   4.00     82     27    51 2.781250    32
66      Pt     GYPt01   5.00    106     35     8 4.333333     6
67      Pt     GYPt01   5.10     86     24    25 3.375000    16
68      Pt     GYPt01   4.60     79     25    21 2.631579    19
69      Pt     GYPt01   5.00     80     30    23 2.823529    17
70      Pt     NSPt01   5.30    107     27    37 2.850000    33
71      Pt     NSPt01   5.40     85     26    38 2.270000    32
72      Pt     NSPt01   5.40    102     31    50 5.320000    40
73      Pt     NSPt01   5.10     84     23    29 5.320000    23
74      Pt     NSPt01     NA     NA     NA    NA       NA    NA
75      Pt     NSPt01   4.10     57     17    24 2.700000    18
> levels(d$population)
 [1] "BCPy01" "BXPd01" "CYPd01" "CYPd02" "CYPd03" "GSPy02" "GYPt01" "KMPy01"
"LJPy01" "NSPt01"
[11] "YLPd01" "YLPy01" "YXPy01"
> levels(d$population)<-c("YXPy01", "KMPy01", "YLPy01", "GSPy02", "BCPy01",
"LJPy01", "GYPt01", "YLPd01", "CYPd01", "CYPd02", "CYPd03", "BXPd01",
"NSPt01")
> levels(d$population)
 [1] "YXPy01" "KMPy01" "YLPy01" "GSPy02" "BCPy01" "LJPy01" "GYPt01" "YLPd01"
"CYPd01" "CYPd02"
[11] "CYPd03" "BXPd01" "NSPt01"
> d
   species population conlen tscale fscale tseen    w100s nfsee
1       Pt     NSPt01   8.60    153     69   111 1.680851    94
2       Pt     NSPt01   8.10    173     74   139 1.848485   133
3       Pt     BXPd01   6.50    138     58    99 1.520833    48
4       Pt     BXPd01   5.90    153     67   118 1.355140   107
5       Pt     YLPd01   6.10    113     48    75 1.470588    51
6       Pt     YLPd01   5.10    129     54   100 1.176471    68
7       Pt     YLPd01   3.90    109     37    30 1.500000    22
8       Pt     YLPd01   5.00    128     55    71 1.468750    64
9       Pt     YLPd01   4.70    132     54    32 1.500000    28
10      Pt     YLPd01   5.80    113     52    65 1.136364    45
11      Pt     YLPd01   4.70    114     42    71 1.131148    61
12      Pt     YLPd01   5.00    120     77   131 1.403361   119
13      Pt     LJPy01   6.20    152     59   102 1.348837    43
14      Pt     LJPy01   6.20    111     41    64 2.805556    36
15      Pt     LJPy01   6.70    130     56    67 1.757576    33
16      Pt     LJPy01   6.60    115     47    78 1.603175    63
17      Pt     LJPy01   8.90    137     61   102 1.767677    99
18      Pt     LJPy01   6.20    157     68   115 1.459016    61
19      Pt     YXPy01   5.30     91     39    24 1.263158    19
20      Pt     YXPy01   6.10    100     46    53 1.117647    17
21      Pt     YXPy01   4.50     81     32    46 1.320000    25
22      Pt     CYPd01   6.60    170     65    72 2.035714    56
23      Pt     CYPd01   6.90    104     46    58 1.800000    55
24      Pt     CYPd01   8.60    161     66    38 1.794118    34
25      Pt     CYPd01   5.40    123     40    22 2.428571    21
26      Pt     CYPd01   6.80    123     54    57 2.044444    46
27      Pt     CYPd01   8.60    166     77    77 1.847458    59
28      Pt     CYPd01   6.00    132     51    91 1.119048    84
29      Pt     CYPd01   6.80    108     45    27 1.814815    27
30      Pt     CYPd01   6.20    115     48    70 1.765957    47
31      Pt     CYPd01   8.00    168     80   132 2.036364   111
32      Py     YLPy01   6.70    138     57    23 1.555556     9
33      Py     YLPy01   6.80    121     46    53 1.973684    38
34      Py     YLPy01   5.90    114     52    60 1.250000    12
35      Py     YLPy01   5.20    119     53    53 1.432432    37
36      Py     YLPy01   7.60    118     46    63 2.000000    23
37      Py     YLPy01   6.10    144     61    24 1.428571    14
38      Py     YLPy01   5.50    130     46    62 1.320000    54
39      Py     YLPy01   6.60    153     57    83 1.558442    77
40      Py     GSPy02   5.90    111     32    51 1.300000    10
41      Py     GSPy02   7.10    121     51    80 1.451613    31
42      Py     GSPy02   7.30    150     68   127 1.681416   113
43      Py     GSPy02   5.60    121     38    64 1.228571    36
44      Py     GSPy02   7.20    140     62    88 1.585366    41
45      Py     GSPy02   6.10    113     54    91 1.256757    74
46      Py     BCPy01   4.60    109     45    57 1.093750    32
47      Py     BCPy01   4.90    115     44    45 1.235294    17
48      Py     BCPy01   6.40    134     44    64 1.209302    45
49      Py     BCPy01   4.60     96     42    41 1.150000    21
50      Py     BCPy01   5.60    131     43    45 1.771429    35
51      Py     BCPy01   6.10    124     48    59 1.578947    38
52      Py     BCPy01   5.20    110     57    71 1.340426    47
53      Py     BCPy01   5.50    118     57    83 1.625000    48
54      Py     BCPy01   6.10    106     61    95 1.559322    60
55      Py     BCPy01   6.20    121     64   100 1.707692    65
56      Py     BCPy01   5.10     99     38    28 1.430000    20
57      Py     BCPy01   5.10    132     45    47 1.791667    24
58      Py     CYPd03   6.15    120     43    46 1.446000    21
59      Pd     KMPy01   4.60     64     18    23 2.166667    18
60      Pd     KMPy01   5.10     87     26    38 2.250000    32
61      Pd     KMPy01   4.80     89     27    50 2.130435    46
62      Pd     KMPy01   6.00     97     29    31 2.684211    19
63      Pd     KMPy01   5.20     98     32    54 2.292683    41
64      Pd     GYPt01   4.30     98     27     8 4.000000     5
65      Pd     GYPt01   4.00     82     27    51 2.781250    32
66      Pd     GYPt01   5.00    106     35     8 4.333333     6
67      Pd     GYPt01   5.10     86     24    25 3.375000    16
68      Pd     GYPt01   4.60     79     25    21 2.631579    19
69      Pd     GYPt01   5.00     80     30    23 2.823529    17
70      Pd     CYPd02   5.30    107     27    37 2.850000    33
71      Pd     CYPd02   5.40     85     26    38 2.270000    32
72      Pd     CYPd02   5.40    102     31    50 5.320000    40
73      Pd     CYPd02   5.10     84     23    29 5.320000    23
74      Pd     CYPd02     NA     NA     NA    NA       NA    NA
75      Pd     CYPd02   4.10     57     17    24 2.700000    18

	[[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list