Я застрял в проблеме спора R-данных.У меня есть фрейм данных (df), который выглядит следующим образом:
loc lat long group
1 loc1 47.69119 -91.85776 A
2 loc1 47.69119 -91.85776 B
3 loc1 47.69119 -91.85776 C
4 loc2 46.41079 -86.64089 C
5 loc2 46.41079 -86.64089 C
6 loc2 46.41079 -86.64089 C
7 loc3 47.33673 -91.19876 D
8 loc4 46.83937 -87.71222 A
9 loc4 46.83937 -87.71222 E
10 loc4 46.83937 -87.71222 E
Что я хотел бы сделать, это создать новый столбец для каждого уникального значения в группе df $, а затем использоватьколичество раз, которое каждая группа наблюдается для каждого местоположения, чтобы заполнить новые столбцы, и сохранить только одну строку для каждого местоположения.Я бы хотел, чтобы конечный продукт выглядел так:
loc lat long A B C D E
1 loc1 47.69119 -91.85776 1 1 1 0 0
2 loc2 46.41079 -86.64089 0 0 3 0 0
3 loc3 47.33673 -91.19876 0 0 0 1 0
4 loc4 46.83937 -87.71222 1 0 0 0 2
Я думаю, что мне нужна некоторая комбинация функций dplyr и / или tidyr, но я не смог ее решить,Я записал в таблицу частоту для каждого loc и группы, используя следующий код:
df.freq = df %>%
group_by(loc, group) %>%
summarise(Freq = n())
Возможно, полученный результирующий df.freq можно использовать для создания новых столбцов, используя tidyr, следующим образом:
tidyr::separate(df.freq, group,
as.character(unique(df.freq$group)))
Но тогда я не уверен, как заполнить каждый новый столбец и сохранить только одну строку для каждого loc.