Я искал многочисленные Q & Как, но не нашел решения еще для этой проблемы ... (см попытки ниже)Создание нескольких экстрактов Csv по Подменят данные кадра
У меня есть набор данные транзакционных MAC_trans_sales_members
где назначена каждая транзакция к идентификатору клиента и каждому клиенту, назначенному для когорты, например '01/2016 'в колонке join.cohort
. Есть 4M клиентов, поэтому слишком много строк для 1 файла excel, поэтому я хотел бы создать отдельные подмножества для каждой когорты соединений и экспортировать каждое подмножество в отдельный csv. Есть около 18 когорт, поэтому я хочу автоматизировать это подмножество.
Я попытался следующие биты кода, но ни один из них не работает:
попытка 1
dt <- MAC_trans_sales_members
setDT(dt)[, fwrite(.SD, paste0("output_", join.cohort,".csv")),
by = join.cohort, .SDcols=names(dt) ]
Error: is.character(file) && length(file) == 1 && !is.na(file) is not TRUE
попытка 2
setDT(MAC_trans_sales_members)[, write.csv(.SD, paste0("output_", join.cohort,".csv")),
by = join.cohort, .SDcols=names(MAC_trans_sales_members) ]
Error in file(file, ifelse(append, "a", "w")) :
invalid 'description' argument
In addition: Warning message:
In if (file == "") file <- stdout() else if (is.character(file)) { :
the condition has length > 1 and only the first element will be used
попытка 3
daply(MAC_trans_sales_members, .(join.cohort), write.csv)
... просто извергает lin данных в консоли
Что я делаю неправильно?
Спасибо - сделали ваши изменения, добавив 'unique', но теперь я все еще получаю сообщение об ошибке:. 'Ошибка в fwrite (.SD, paste0 (" output_ ", unique (join.cohort)," .csv ")): Нет такого файла или каталога: 'output_02/2016.csv'. Не удалось создать новый файл для записи (он еще не существует). У вас есть разрешение писать здесь, есть ли место на диске и существует ли путь? ' любые мысли? – Adam
Путь к файлу output_02/2016.csv должен существовать для его работы. Проверьте, находится ли папка output_02 в вашем рабочем каталоге, которую вы можете проверить, используя 'getwd()' – chinsoon12
Спасибо - переменные в 'join.cohort' находятся в формате 01/2016, 02/2016 и т. Д., Поэтому выходной код был взяв «/» в качестве уровня папки. Я переписал «/» на «-», и теперь он экспортирует штраф и так быстро! – Adam