x[<length-0>] <- list() is intended to work, and did at one point in R-devel. Unfortunately I added (p:1) at one point since ... it works again now.
On Tue, 22 Jul 2003 [EMAIL PROTECTED] wrote: > The problem appears to occur in the following expression from write.table(): > > x[num] <- lapply(x[num], function(z) gsub("\\.", ",",as.character(z))) > > which gives an error when 'num' has length zero (for what it's worth, the > RHS evaluated to list()). > > The error reported occurs when dec= is supplied to write.table() and the > table has no numeric columns. > > Data frame column assignment does not appear able to handle the case where > the index has zero length, as in the following example > > > x <- data.frame(x="1.5") > > num <- numeric(0) > > x[num] <- list() > Error in if (n%%nrowv == 0) value <- value[rep(1:nrowv, length = n), , : > missing value where TRUE/FALSE needed > In addition: Warning messages: > 1: no finite arguments to min; returning Inf > 2: no finite arguments to max; returning -Inf > > traceback() > 2: "[<-.data.frame"(*tmp*, num, value = list()) > 1: "[<-"(*tmp*, num, value = list()) > > > > Possible fixes are to either guard the expression in write.table() with 'if > (length(num))' or to change "[<-.data.frame"() to handle this case. > > (I note that S-plus 6.1 under Windows and R1.6.2 under Windows also > generate an error with this type of data frame assignment, so it does not > appear to be a new bug with data frame assignment, and is probably best > fixed with the simple change to write.table()) > > -- Tony Plate > > At Tuesday 03:29 PM 7/22/2003 +0200, [EMAIL PROTECTED] wrote: > >Full_Name: Antoine Lucas > >Version: 1.7.0 (2003-04-16) > >OS: Linux > >Submission from: (NULL) (193.51.197.253) > > > > > >I have a problem using read.table: > > > >If in a dataframe, we have a string containing a dot, write.table > >will not write any file while using option "dec=','". > > > >Example > > > > > m <- "1.5" > > > write.table(m,dec=',') > >Error in if (n%%nrowv == 0) value <- value[rep(1:nrowv, length = n), , : > > missing value where TRUE/FALSE needed > >In addition: Warning messages: > >1: no finite arguments to min; returning Inf > >2: no finite arguments to max; returning -Inf > > > >Whereas the contrary write the table: > > > m <- "1,5" > > > write.table(m,dec='.') > >"x" > >"1" "1,5" > > > > > >Best regards > > > >Antoine Lucas > > > >-- > >Antoine Lucas > >INRA, Unité de biométrie et | Tel 05 61 28 53 34 > >intelligence artificielle | Fax 05 61 28 53 35 > >http://genopole.toulouse.inra.fr/~lucas > > > >______________________________________________ > >[EMAIL PROTECTED] mailing list > >https://www.stat.math.ethz.ch/mailman/listinfo/r-devel > > ______________________________________________ > [EMAIL PROTECTED] mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-devel > > -- 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 ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-devel