two apparent anomalies
On Sat, 22 Jan 2011 06:16:43 -0800 (PST)
"analyst41 at hotmail.com" <analyst41 at hotmail.com> wrote:
(1)
a = c("a","b")
mode(a)
[1] "character"
b = c(1,2) mode(b)
[1] "numeric"
c = data.frame(a,b) mode(c$a)
[1] "numeric"
R> str(c) 'data.frame': 2 obs. of 2 variables: $ a: Factor w/ 2 levels "a","b": 1 2 $ b: num 1 2 Character vectors are turned into factors by default by data.frame(). OTOH: R> c = data.frame(a,b, stringsAsFactors=FALSE) R> mode(c$a) [1] "character"
(2)
a = c("a","a","b","b","c")
levels(as.factor(a))
[1] "a" "b" "c"
levels(as.factor(a[1:3]))
[1] "a" "b"
a = as.factor(a) levels(a)
[1] "a" "b" "c"
levels(a[1:3])
[1] "a" "b" "c"
Subsetting factors does not get rid of no-longer used levels by default. OTOH: R> levels(a[1:3, drop=TRUE]) [1] "a" "b" or R> levels(factor(a[1:3])) [1] "a" "b" HTH. Cheers, Berwin ========================== Full address ============================ Berwin A Turlach Tel.: +61 (8) 6488 3338 (secr) School of Maths and Stats (M019) +61 (8) 6488 3383 (self) The University of Western Australia FAX : +61 (8) 6488 1028 35 Stirling Highway Crawley WA 6009 e-mail: berwin at maths.uwa.edu.au Australia http://www.maths.uwa.edu.au/~berwin