#r
#r
Вопрос:
У меня есть список из 1253 строк в R.
EMT
"1", "2", "3", ..., "1252", "1253"
Я хочу разделить его на почти равные части, чтобы в каждом подсписке было ~ 100 значений.
Я смог выполнить разделение с помощью этого
split(EMT, rep(1:13))
Это разбивает мой список. Но я думаю, что мне нужно присвоить эти подсписки переменным, чтобы иметь возможность использовать их для дальнейшего анализа.
Мой желаемый результат
EMT1
"1", "2", ..., "96"
EMT2
"97", "98", ..., "192"
...
EMT13
"1157", ..., "1253"
Ответ №1:
Будет ли это работать:
EMT <- list(1:1253)
EMT <- sapply(EMT, as.character)
mylist <- split(EMT, rep(1:13))
names(mylist) <- lapply(names(mylist), function(x) paste0('EMT',x))
names(mylist)
[1] "EMT1" "EMT2" "EMT3" "EMT4" "EMT5" "EMT6" "EMT7" "EMT8" "EMT9" "EMT10" "EMT11" "EMT12" "EMT13"
list2env(mylist, .GlobalEnv)
Комментарии:
1. Спасибо. Я применил это к своим данным, но когда я пытаюсь вызвать любой подсписок (EMT13) Я получаю сообщение об ошибке «объект EMT13 не найден»
2. @YuliaKentieva, обновила мой ответ, вам нужно указать «list2env(mylist, .GlobalEnv)», чтобы элементы списка сохранялись в глобальной среде.
Ответ №2:
Вы можете создавать группы по 96 элементов в каждой и разделять данные на список.
EMT <- as.character(1:1253)
list_data <- split(EMT, paste0('EMT', ceiling(seq_along(EMT)/96)))
Обычно лучше хранить данные в списке вместо того, чтобы иметь много переменных в глобальной среде, однако, если вы все еще хотите использовать их как отдельные объекты list2env
.
list2env(list_data, .GlobalEnv)