write.csv(..., col.names = FALSE) (PR#13202)
Dear Paul, Thanks for your hint to write.table(). I have already chosen this route. Note that if row.names = FALSE, col.names gets TRUE and not NA.
rn <- eval.parent(Call$row.names)
Call$col.names <- if (is.logical(rn) && !rn)
TRUE
else NA
This is in contradiction to your citation and not very helpful, if one wants to append data to a file. With best regards, Stefan ____________________________________ Dr. Stefan Albrecht, CFA Allianz Investment Management SE AIM-GI-ALM K?niginstr. 28 | 80802 Munich | Germany Phone: +49.(0)89.3800.18317 Fax: +49.(0)89.3800.818317 EMail: stefan.albrecht at allianz.com Allianz Investment Management SE Vorsitzender des Verwaltungsrates: Dr. Paul Achleitner Gesch?ftsf?hrende Direktoren: Dr. Karl-Hermann Lowe, Dr. Bernd Gutting Sitz der Gesellschaft: M?nchen, Deutschland, Registergericht: M?nchen HRB 162748 F?r Umsatzsteuerzwecke: Ust-ID-Nr.: DE 251 168 597 -----Urspr?ngliche Nachricht----- Von: Paul Roebuck [mailto:plroebuck at mdanderson.org] Gesendet: Monday, October 27, 2008 05:59 An: R Development Mailing List Cc: Albrecht, Dr. Stefan (AIM SE) Betreff: Re: [Rd] write.csv(..., col.names = FALSE) (PR#13202)
On Fri, 24 Oct 2008 stefan.albrecht at allianz.com wrote:
in write.csv() it is not possible to set both row.names = FALSE, col.names = FALSE since the col.names = FALSE gets overwritten:
write.csv
function (...)
{
Call <- match.call(expand.dots = TRUE)
for (argname in c("col.names", "sep", "dec", "qmethod")) if
(!is.null(Call[[argname]]))
warning(gettextf("attempt to set '%s' ignored", argname),
domain = NA)
rn <- eval.parent(Call$row.names)
Call$col.names <- if (is.logical(rn) && !rn)
TRUE
else NA
Call$sep <- ","
Call$dec <- "."
Call$qmethod <- "double"
Call[[1]] <- as.name("write.table")
eval.parent(Call)
}
<environment: namespace:utils>
This is not documented and should be changed, as it is an unintended reaction.
?write.csv
write.csv and write.csv2 provide convenience wrappers for writing CSV files. They set sep, dec and qmethod, and col.names to NA if row.names=TRUE and TRUE otherwise.
Seems documented to me. Note that write.csv is just a wrapper for write.table. If you don't like the wrapper, you could always call write.table with its arguments set just as you want. ---------------------------------------------------------- SIGSIG -- signature too long (core dumped)