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().