Необходимо использовать для l oop в R, чтобы перебрать значения в столбце - PullRequest
0 голосов
/ 24 марта 2020

Использование для l oop в R для итерации, создание кадра данных с 4 наблюдениями и 3 переменными для i, а затем применение функции к i для каждого значения в столбце

Привет, я действительно изо всех сил чтобы понять циклы и пытались понять, как написать этот код. У меня есть фрейм данных (называемый JoinedEthn), в котором две переменные - это ethnM и ethnF, которые содержат этническую принадлежность партнеров мужского и женского пола (соответственно).

Это факторные переменные, а этнические группы закодированы в виде символов, т. Е. "Белый Брити sh", "Ири sh" и т. c.

Я создал код, который будет создайте новый фрейм данных с 4 наблюдениями и 3 переменными, который показывает этни c эндогамию пар в каждой этнической c группе (например, один наблюдатель показывает количество пар, у которых женщина - небритый британец * 1021) * и мужчина - белый британец sh, во втором наблюдении показано количество пар, в которых мужчина - небритый британец sh, а женщина - белый британец sh, в третьем наблюдении - количество пар, где оба партнера не являются белыми британцами sh, а наблюдение четыре показывает количество пар, в которых оба партнера являются белыми британцами sh.) Затем мой код будет применять функцию (написанную мной), которая вычисляет отношение шансов кадра данных oddsRatio ()

    whitebritish <- JoinedEthn %>%
        mutate(malepartner = recode(ethnM,
                               "White British" = "White British",
                               .default = "Non White British"
                               )) %>%
        mutate(femalepartner = recode(ethnF,
                              "White British" = "White British",
                               .default = "Non White British"
                               )) %>%
  filter(!is.na(malepartner), !is.na(femalepartner)) %>%
  group_by(malepartner, femalepartner) %>% 
  summarise(n = n())

  oddsRatio(whitebritish)

Мне нужно повторять этот код для каждого значения, показанного в ethnM / ethnF, чтобы у меня был фрейм данных для каждой группы ethni c например, iri sh против non-iri sh, китайский против не китайского, бангладешский против не китайского. При этом «не» группа включает в себя все другие этнические группы. Затем мне нужно применить функцию oddsRatio () к каждому фрейму данных. Выходные данные должны содержать отношение шансов для каждой группы ethni c (то есть результат функции oddsRatio () применительно к каждому фрейму данных)

Для этого этот проект требует me использовать итерацию и для циклов. Какой код я могу написать, который перебирает каждую группу ethni c для получения результатов, описанных выше? Заранее благодарю за помощь:) x

...