[Rd] write.table
Prof Brian Ripley
ripley@stats.ox.ac.uk
Wed, 6 Dec 2000 09:23:32 +0000 (GMT)
On Wed, 6 Dec 2000, Torsten Hothorn wrote:
>
> Good morning,
>
> suppose the following:
>
> m <- round(matrix(rnorm(16), ncol=4), 3)
> a <- rev(c(0.01, 0.025, 0.05, 0.1))
> rownames(m) <- a
> colnames(m) <- c("0.25,0.75", "0.4,0.6", "0.1,0.9", "0.4,0.9")
> m
> 0.25,0.75 0.4,0.6 0.1,0.9 0.4,0.9
> 0.1 1.034 -0.119 -1.213 0.619
> 0.05 0.035 1.074 0.525 1.671
> 0.025 -1.687 0.960 0.324 -0.170
> 0.01 0.906 1.642 0.557 -2.224
>
> and now write.table says:
>
> write.table(m)
> "X0.25.0.75" "X0.4.0.6" "X0.1.0.9" "X0.4.0.9"
> "0.1" "1.034" "-0.119" "-1.213" "0.619"
> "0.05" "0.035" "1.074" "0.525" "1.671"
> "0.025" "-1.687" "0.96" "0.324" "-0.17"
> "0.01" "0.906" "1.642" "0.557" "-2.224"
>
> If one writes 'm' into a file and reads it using read.table:
>
> read.table("dummy")
> X0.25.0.75 X0.4.0.6 X0.1.0.9 X0.4.0.9
> 0.1 1.034 -0.119 -1.213 0.619
> 0.05 0.035 1.074 0.525 1.671
> 0.025 -1.687 0.960 0.324 -0.170
> 0.01 0.906 1.642 0.557 -2.224
>
> the colnames are incorrect. Do I miss something?
Yes. write.table converts to a data frame. Try
x <- data.frame(m, check.names=FALSE)
write.table(x)
to give it a data frame in the first place. The help says:
x: the object to be written, typically a data frame. If not, it
is attempted to create one from it.
and the names get converted during that process to valid names.
--
Brian D. Ripley, ripley@stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272860 (secr)
Oxford OX1 3TG, UK Fax: +44 1865 272595
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._