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....@gmail.com> À: r-help@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@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. ______________________________________________ R-help@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.