У меня есть данные об уровнях биологических соединений у тестируемых пациентов, которые группируются в разные группы в зависимости от того, какие лекарства вводили.То есть у нас есть:
- Столбцы: Лекарства (или группы) A, B и C, где в каждой группе 3 пациента (индивидуально обозначенных, где пациенты в A обозначены A1, A2, A3;пациенты в группе B обозначаются как B1, B2, B3 и т. д.)
- Строки: мы отслеживаем биологические соединения
Coronin
, Dystrophin
, Tubulin
(случайно выбранные названия белков Googled) и т. д.,
Таким образом, мы имеем tibble
подобный (все значения в tibble
являются числами с плавающей запятой):
| compound | A1 | A2 | A3 | B1 ... C3|
|-----------|----|----|----|---- ... --|
| Coronin |
| Dystrophin|
| Gloverin |
| keratin |
| Tubulin |
Для каждого соединения я хочу вычислить средние значения для каждогогруппа, как новый столбец, например:
| compound | A1 | A2 | A3 | B1 ...C3| mean_A | mean_B | mean_C |
|-----------|-----|-----|-----|---- ... --|---------|---------|---------|
| Coronin | 1 | 2 | 3 | ... | 2 | ... |
| Dystrophin| 4 | 5 | 6 | ... | 5 | ... |
| Gloverin | ...
| keratin |
| Tubulin |
Код для этого:
my_tibble <- my_tibble %>%
mutate(mean_A = rowMeans(select(., c("A1", "A2", "A3")))) %>%
mutate(mean_B = rowMeans(select(., c("B1", "B2", "B3")))) %>%
mutate(mean_C = rowMeans(select(., c("C1", "C2", "C3"))))
Вопрос: я хотел бы иметь возможность это длядинамически вводить число групп, т. е. C, D, E и т. д. ... где столбец в группу представляет собой отдельный вклад пользователя, сам по себе, скажем:
| group_name | name1 | name2 | name3 |
|------------|-------|-------|-------|
| A | A1 | B2 | C3 |
| B | B1 | B2 | C3 |
...
and so on
Как можно добавить итеративноmutate
глаголов, в соответствии с указанным пользователем числом групп (и связанных имен выборки в группу)?
Примечание: имена групп "C", "B" ... и т. Д. Являются произвольными (группам, например, скорее всего будет назначено название препарата, которому была назначена эта группа), поэтому я бы не стал использовать итеративную операцию, основанную на том факте, что они буквально называются «А», «В»,и т. д.