Arhn - архитектура программирования

Использование цикла for в R

У меня есть датафрейм X

  id  sales  age
   1   100    32
   2   40     27
   3   694    34
   4   500    41

Я хотел бы создать цикл for

для (я в 1:4)

{
group[i]<- X[X$id==i, ]

}

Я сделал этот тривиальный цикл for, чтобы описать идею, однако его нужно отредактировать. Я хочу получить group1 как фрейм данных о продажах и возрасте, в котором id=1, и так далее для других групп. На самом деле я ищу решение с помощью цикла for, потому что оно понадобится мне позже.

Спасибо !

25.02.2020

  • Попробуйте split(X, X$id) 25.02.2020
  • Спасибо, но мне нужен цикл for для прямого получения фреймов данных 25.02.2020
  • Возможный дубликат stackoverflow.com/q/9713294/680068 и stackoverflow.com/q/13795526/680068 25.02.2020
  • Нет необходимости в forloops, см. 1-ю ссылку, чтобы разделить на список фреймов данных, затем 2-ю ссылку, если вам нужны фреймы данных в вашей среде как отдельные объекты. 25.02.2020
  • Мне нужен цикл for, потому что я буду использовать его позже для своего кода, добавляя некоторые другие строки 25.02.2020

Ответы:


1

Хотя я думаю, что вы должны использовать split(X, X$id), как предлагает @zx8754, вот подход, использующий цикл for:

X <- read.table(text = "  id  sales  age
   1   100    32
   2   40     27
   3   694    34
   4   500    41", header = TRUE)

ids <- unique(X[["id"]])
grps <- vector(mode = "list", length = length(ids))
for (id in ids) {
  grps[[id]] = X[X$id == id, ]
}

grps
[[1]]
  id sales age
1  1   100  32

[[2]]
  id sales age
2  2    40  27

[[3]]
  id sales age
3  3   694  34

[[4]]
  id sales age
4  4   500  41

Или, если вам нужно количество раз в цикле, вы можете использовать:

for (i in seq_along(ids)) {
  grps[[i]] = X[X$id == ids[i], ]
}
grps

Этот следующий шаг не рекомендуется, но он возьмет список и создаст кучу объектов data.frame в среде:

names(grps) <- paste0("grps", seq_len(length(grps)))
list2env(grps, .GlobalEnv)
25.02.2020
  • Спасибо! Вы знаете, как сделать тип grps фреймом данных, а не вектором списков? В этой строке grps ‹- вектор (режим = список, длина = длина (идентификаторы)) 25.02.2020
  • Я не знаю, чего ты хочешь. Пожалуйста, отредактируйте свой вопрос, чтобы включить желаемый результат. 25.02.2020
  • Я хочу получить на выходе 4 фрейма данных, grps1, grps2,.... grps4. Вместо списков. Поэтому мне нужно каким-то образом создать пустую группу данных вместо вектора. 25.02.2020
  • См. редактирование внизу. Если это поможет, рассмотрите возможность принятия решения — в следующий раз предоставьте воспроизводимый пример, включающий ожидаемый результат. например, grp1 <- X[1, ]; grp2 <- X[2, ]; ... 25.02.2020
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..