РЕДАКТИРОВАТЬ 1: Ясность и опечатки, подробно описано в примере.
У меня есть набор данных с одним столбцом (Action
), который имеет текстовые значения.Я хочу подсчитать уникальные значения (для данного Operatie
) и поместить их в новый столбец в соответствии с их идентификатором (== Operatie
).В Action
.
имеется 21 уникальное значение. В новом наборе данных важно, чтобы новый столбец (который считает одно текстовое значение из Action
) был связан со значением Q.Operatie
(имеет значения Q1, Q2, Q3, Q4
) и Operatie
(1:100
).
Таким образом, если мы возьмем первые 4 строки в нашем примере, то у нас будет столбец с именем Q1.Delegerend
== 2. Тогда как следующий столбец будет Q1.Goedaardig
== 1Потому что у нас есть 2 случая Delegerend
и 1 случай Goedaardig
для Operation == 1
.Я игнорирую Instruerend
для этого примера.
Это приводит к 4 ( Q1.X: Q4.X ) столбцам, каждый из которых имеет свое уникальное количество текстовых значений в пределах своего допустимого диапазона.Таким образом, Q1.Delegerend
, Q2.Delegerend
, Q3.Delegerend
, Q4.Delegerend
для строки Operatie == 1
для Delegerend
(один из 21 уникальных).Возможно, нам понадобится установить «матрицы перехода», отсюда и разделение наблюдений.
Пример необработанных данных показан ниже, новый набор данных будет иметь столбцы для каждого уникального значения в одной строке.см. пример ниже необработанных данных.
Operatie Tijdstip Berekening.voor.D Minuut.van.de.Operatie Berekening.voor.F Q.Operatie Actor Responder Action Focus InterTeam
1 1 08:44:56 00:00 1 1% Q1 C OA Delegerend 1 b
2 1 08:45:43 00:00 2 2% Q1 C* AM Goedaardig 1 a
3 1 08:46:45 00:01 3 4% Q1 OA OA* Instruerend 3
4 1 08:47:10 00:02 3 4% Q1 C OA* Delegerend 1 b
5 1 08:48:03 00:03 4 6% Q1 C Team Onderwijzend 1 b
6 1 08:48:44 00:03 5 7% Q1 C Team Bewustwording 1 b
7 1 08:49:28 00:04 6 8% Q1 C* C Instruerend 1 b
8 1 08:50:30 00:05 7 9% Q1 C C* Onderwijzend 1 b
9 1 08:50:47 00:05 7 10% Q1 C AM Delegerend 1 a
10 1 08:51:47 00:06 8 11% Q1 C OA Instruerend 1 b
Таким образом, в конечном итоге я хотел бы иметь одну строку ( Operatie ) с 21 столбцом с частотой этого уникального текста (взятой из столбца Действие * 1046)*), отсортировано по уровням Q.Operatie
.Да, это приведет к большому количеству столбцов, 21 уникальному значению, умноженному на 4. Но это нормально.
Operatie Minuten Chirurg1 Chirurg2 Q1.Delegerend Q2.Delegerend Q3.Delegerend Q4.Delegerend Q1.Goedaardig
1 1 72 10 11 2 4 5 5
2 2 30 10 11 2 2 6 12
3 3 102 1 2 1 5 12 ...
4 4 212 2 NA 3 13 13
5 5 37 4 NA 1 2 ...
6 6 57 2 NA 3 9
7 7 120 3 NA 1 9
8 8 146 3 NA 1 6
9 9 143 2 9 3 10
10 10 189 9 2 3 12
Поэтому я попытался составить список для работы с dplyr, см. Ниже.Мне не удалось заставить его работать бегло.У меня сложилось впечатление, что можно вызвать список для подсчета уникальных значений, но я не знаю, как это записать, используя dplyr
.Я просмотрел несколько постов, но ничего не нашел о подсчете нескольких строк, чтобы перенести его в новый набор данных.Однако последнее достаточно просто, мне просто нужны столбцы.
my_list <- list(unique(sort(obs_IND$Action)))
obs_IND %>%
count(my_list) %>%
group_by(Operatie) %>%
tally()
Использованные источники: