Мне нужно предоставить коллегам CSV, который они могут легко использовать в Excel. Различные части csv хранятся в разных data.tables, потому что они различаются по своей структуре. Теперь возникает проблема, что всякий раз, когда я хотел бы экспортировать data.tables в один CSV, тип данных столбцов с числовыми и строковыми значениями устанавливается на chr
, и это, конечно, создает проблемы в Excel с числами. (Пожалуйста, имейте в виду, что проблема намного хуже, поскольку это Германия, и мы используем другой десятичный разделитель.) Я думаю, что это связано с тем, что большинство инструментов экспорта fwrite
, write.csv
, сначала rbind
data.tables в один и экспортировать его потом. Есть ли способ создать CSV, который может хранить разные data.types в одном столбце? В настоящее время я храню каждый файл data.table для каждого файла CSV, но, таким образом, я создаю ручную работу, которую я бы предпочел не делать.
Небольшой минимальный рабочий пример:
library(data.table)
dt.a <- data.table(D = letters[12:22]
, E = seq(from = 10, to = 11, by = 0.1)
)
dt.b <- data.table(A = seq(from = 1, to =2, by = 0.1)
, B = letters[1:11]
)
fwrite(x = rbind(dt.b
, dt.a
, use.names = FALSE)
, file = "test.csv"
, sep = ";"
, dec = ","
, col.names = FALSE
, row.names = FALSE
)
Это приводит кCSV-файл, как показано ниже, и, как видно, формат чисел не легко импортировать в Excel.
1;a
1.1;b
1.2;c
1.3;d
1.4;e
1.5;f
1.6;g
1.7;h
1.8;i
1.9;j
2;k
l;10
m;10.1
n;10.2