On 19/07/12 18:55, Vincy Pyne wrote:
Dear R helpers,

I have one trivial problem while writing an output file in csv format.

I have two dataframes say df1 and df2 which I am reading from two different csv 
files.

df1 has column names as date, r1, r2, r3 while the dataframe df2 has column 
names as date, 1w, 2w.

(the dates in both the date frames are identical also no of elements in each 
column are equal say = 10).

I merge these dataframes as

df_new = merge(df1, df2, by = "date", all = T)

So my new data frame has columns as

date, r1, r2, r3, 1w, 2w

However, if I try to write this new dataframe as a csv file as

write.csv(data.frame(df_new), 'df_new.csv', row.names = FALSE)

The file gets written, but when I open the csv file, the column names displayed 
are as

date, r1, r2, r3, X1w, X2w

My original output file has about 200 columns so it is not possible to write 
column names individually. Also, I can't change the column names since I am 
receiving these files from external source and need to maintain the column 
names.

Just omit the unnecessary and redundant call to data.frame()
inside your call to write.csv().  I.e. just do:

write.csv(df_new, 'df_new.csv', row.names = FALSE)

It is that call to data.frame() that is forcing legal names
on you, *not* the call to write.csv().

    cheers,

        Rolf Turner

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to