[Rd] Methods for format() are not consistent with NA values (PR#12385)
Gregor.Gorjanc at bfro.uni-lj.si
Gregor.Gorjanc at bfro.uni-lj.si
Thu Aug 7 12:21:45 CEST 2008
Hi!
Methods for format() are not consistent when applied to vectors
having NA values. Some methods encode NA values to "NA"
by default, while other do not. It would be much more easier to
write other functions if these functions would all behave
consistently.
Examples produced with R
> version
_
platform i486-pc-linux-gnu
arch i486
os linux-gnu
system i486, linux-gnu
status
major 2
minor 7.1
year 2008
month 06
day 23
svn rev 45970
language R
version.string R version 2.7.1 (2008-06-23)
testData <- data.frame(
fac1=3Dfactor(c(NA, letters[1:9], "hjh")),
fac2=3Dfactor(c(letters[6:15], NA)),
cha1=3Dc(letters[17:26], NA),
cha2=3Dc(NA, "longer", letters[25:17]),
stringsAsFactors=3DFALSE)
levels(testData$fac1) <- c(levels(testData$fac1), "unusedLevel")
testData$Date <- as.Date("1900-1-1")
testData$Date[2] <- NA
testData$POSIXt <- as.POSIXct(strptime("1900-1-1 01:01:01",
format=3D"%Y-%m-%d %H:%M:%S"))
testData$POSIXt[5] <- NA
## --- Character ---
> format(testData$cha1)
[1] "q " "r " "s " "t " "u " "v " "w " "x " "y " "z " "NA"
> format(testData$cha1, na.encode=3DTRUE)
[1] "q " "r " "s " "t " "u " "v " "w " "x " "y " "z " "NA"
> format(testData$cha1, na.encode=3DFALSE)
[1] "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" NA
## --- Factor ---
> format(testData$fac1)
[1] "NA " "a " "b " "c " "d " "e " "f " "g " "h " "i " "hjh"
> format(testData$fac1, na.encode=3DTRUE)
[1] "NA " "a " "b " "c " "d " "e " "f " "g " "h " "i " "hjh"
> format(testData$fac1, na.encode=3DFALSE)
[1] NA "a " "b " "c " "d " "e " "f " "g " "h " "i " "hjh"
## --- Numeric et al. ---
## na.encode has no effect
## --- Date ---
> format(testData$Date)
[1] "1900-01-01" NA "1900-01-01" "1900-01-01" "1900-01-01"
[6] "1900-01-01" "1900-01-01" "1900-01-01" "1900-01-01" "1900-01-01"
[11] "1900-01-01"
> format(testData$Date, na.encode=3DTRUE)
[1] "1900-01-01" NA "1900-01-01" "1900-01-01" "1900-01-01"
[6] "1900-01-01" "1900-01-01" "1900-01-01" "1900-01-01" "1900-01-01"
[11] "1900-01-01"
> format(testData$Date, na.encode=3DFALSE)
[1] "1900-01-01" NA "1900-01-01" "1900-01-01" "1900-01-01"
[6] "1900-01-01" "1900-01-01" "1900-01-01" "1900-01-01" "1900-01-01"
[11] "1900-01-01"
## --- POSIXt ---
> format(testData$POSIXt)
[1] "1900-01-01 01:01:01" "1900-01-01 01:01:01" "1900-01-01 01:01:01"
[4] "1900-01-01 01:01:01" NA "1900-01-01 01:01:01"
[7] "1900-01-01 01:01:01" "1900-01-01 01:01:01" "1900-01-01 01:01:01"
[10] "1900-01-01 01:01:01" "1900-01-01 01:01:01"
> format(testData$POSIXt, na.encode=3DTRUE)
[1] "1900-01-01 01:01:01" "1900-01-01 01:01:01" "1900-01-01 01:01:01"
[4] "1900-01-01 01:01:01" NA "1900-01-01 01:01:01"
[7] "1900-01-01 01:01:01" "1900-01-01 01:01:01" "1900-01-01 01:01:01"
[10] "1900-01-01 01:01:01" "1900-01-01 01:01:01"
> format(testData$POSIXt, na.encode=3DFALSE)
[1] "1900-01-01 01:01:01" "1900-01-01 01:01:01" "1900-01-01 01:01:01"
[4] "1900-01-01 01:01:01" NA "1900-01-01 01:01:01"
[7] "1900-01-01 01:01:01" "1900-01-01 01:01:01" "1900-01-01 01:01:01"
[10] "1900-01-01 01:01:01" "1900-01-01 01:01:01"
--
Lep pozdrav / With regards,
Gregor Gorjanc
----------------------------------------------------------------------
University of Ljubljana PhD student
Biotechnical Faculty www: http://gregor.gorjanc.googlepages.com
Zootechnical Department blog: http://ggorjan.blogspot.com
Groblje 3 mail: gregor.gorjanc <at> bfro.uni-lj.si
SI-1230 Domzale fax: +386 (0)1 72 17 888
Slovenia, Europe tel: +386 (0)1 72 17 861
More information about the R-devel
mailing list