У меня есть большой фреймворк данных, который я хотел бы разбить на несколько небольших фреймов данных на основе значения в столбце Name
.Разделить данные на несколько небольших кадров данных в R
head(DATAFILE)
# Age Site Name 1 2 3 4 5
# 10 1 Orange 0 2 1 0 1
# 10 1 Apple 2 5 4 0 2
# 10 1 Banana 0 0 0 0 2
# 20 2 Orange 0 2 1 0 0
# 20 2 Apple 0 2 0 7 1
# 20 2 Banana 0 4 1 3 6
И пример файла желаемого результата;
head(Orange)
# Age Site Name 1 2 3 4 5
# 10 1 Orange 0 2 1 0 1
# 20 2 Orange 0 2 1 0 0
Я попытался
SPLIT.DATA <- split(DATAFILE, DATAFILE$Name, drop = FALSE)
Но это возвращает большой список, и я хотел бы отдельные файлы, так что я могу сохранить их в виде CSV-файлов. Поэтому я хотел бы либо лучше делить исходный файл, либо способ дальнейшего разделения файла SPLIT.DATA.
Лучше держать его в 'list' и петли через' SPLIT.DATA' писать CSV сразу вместо нескольких объектов в глобальном envirnoment, а затем сохранить его в индивидуальном порядке. i..e 'lapply (names (SPLIT.DATA), function (nm) write.csv (SPLIT.DATA [[nm]], paste0 (nm," .csv "), row.names = FALSE, quote = FALSE)) ' – akrun
Мы рекомендуем использовать' dput' для обмена данными, подобными этому, в вопросах R (см. Описание тега R), так как он легко воспроизводится людьми, которые хотят вам помочь. –
Я уже обновил комментарий. Пожалуйста, проверь это. – akrun