On Fri, 11 Feb 2005, Gorjanc Gregor wrote:
From: Liaw, Andy [mailto:[EMAIL PROTECTED]From: Gorjanc Gregor
! Yes, I was not able to do it from my data. But bellow is one. It is ! a stupid one, but it works. The problem is use of as.data.frame in ! tmp1$L <- as.data.frame(tmp$L). This looks like to produce a corrupted ! data.frame. If I use just tmp1$L <- tmp$L, write.table and ! as.matrix.data.frame works OK. I still think that mine proposal can ! give benefit, since it works also on corrupted data frames.
data(warpbreaks) tmp <- as.data.frame(tapply(breaks, list(wool, tension), mean)) tmp1 <- data.frame(level=rownames(tmp)) tmp1$L <- as.data.frame(tmp$L)
Here's the problem that Brian is referring to: Why do you make one variable in the data frame a data frame? That's what caused problem in write.table()!
! I agree completely and as I have described up it is my fault that ! I have/had problems with as.matrix.data.frame by use of write.table. ! But I think that my proposal is nice, since as.matrix.data.frame would ! be more robust.
It is actually much less robust. It would work for embedded data frames of one column, but you could have a list column with entries of different lengths. e.g.
X <- data.frame(x=1:2, y = I(list(a=1, b=3:4)))
as.matrix(X)
x y a 1 1 b 2 Integer,2
With your fix, this becomes an error. And I could replace those entries by data frames containing lists of dates ....
Note that in R-devel write.table does not convert data frames to matrices, so this does not arise. We could treat your example specially, but surely it was an error that is better found out about than hushed up.
-- Brian D. Ripley, [EMAIL PROTECTED] 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 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
______________________________________________ R-devel@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-devel