R csv export с определенными десятичными разрядами производит вывод с ненужными пробелами

После нескольких шагов я пытаюсь экспортировать CSV-файл с указанными разделителями и десятичными разрядами в R.

Я делаю расчеты как:

Data_Table$`field_output` <- ifelse(Data_Table$`field_1` > 0, 
                                      Data_Table$`field_2`,
                                      Data_Table$`field_3`
                                     )

Я пробовал два типа форматирования:

Data_Table$`field_output` <- format(round(Data_Table$`field_output`, 2), nsmall = 2)

а также

Data_Table$`field_output` <- formatC(Data_Table$`field_output`, digits=2, format="f")

затем экспортировать:

write.table(Data_Table, file=paste("./output/filename_", datestring, ".csv"), quote=FALSE, sep=";", eol = "\n", dec=".", row.names=FALSE, col.names=TRUE)

Моя проблема - выход

Выдает выровненные по правому краю столбцы с дополнительными пробелами / символами, ведущими в поле вывода

datestring;ID;UOM;field_output
20160831;1;kWh;100628610.00
20160831;2;kWh;  1800000.00
20160831;3;kWh;      252.00
20160831;4;kWh;        0.00
20160831;5;kWh;        0.00

Есть ли способ избавиться от них и иметь такой формат:

datestring;ID;UOM;field_output
20160831;1;kWh;100628610.00
20160831;2;kWh;1800000.00
20160831;3;kWh;252.00
20160831;4;kWh;0.00
20160831;5;kWh;0.00

Спасибо за ваши ответы заранее! И извините, если это что-то тривиально, или уже ответили!

2 ответа

Использование gsub убрать пробелы при записи файла, т.е.

write.table(gsub(" ", "", Data_Table), ...)

Если вы хотите записать csv-файл, попробуйте write.csv. Для меня это сработало, когда его открывали в Excel.

,"datestring","ID","UOM","field_output"
1,20160831,1,"kWh",100628610
2,20160831,2,"kWh",1800000
3,20160831,3,"kWh",252
4,20160831,4,"kWh",0
5,20160831,5,"kWh",0

Во время испытания он добавил дополнительную строку идентификаторов с чтением, установив row.names=ID, которого я мог бы избежать, или установив row.names=FALSE в функции write.csv().

Другие вопросы по тегам