Самое главное и для будущих сообщений, пожалуйста
- включает образцы данных в воспроизводимом и копируемом и вставляемом формате, например, с помощью
dput
- воздержитесь от добавления лишних утверждений, таких как "Это очень срочно!"
Что касается вашего вопроса, сначала я сгенерирую некоторые примеры данных
set.seed(2018)
df <- data.frame(
Region = sample(letters, 10),
Group = sample(1:3, 10, replace = T))
Я рекомендую суммировать / агрегировать данные по Group
, что облегчит извлечение информации для конкретных Group
с.
Например, в базе R вы можете агрегировать данные на основе Group
и объединять все Region
s за Group
aggregate(Region ~ Group, data = df, FUN = toString)
# Group Region
#1 1 m
#2 2 i, l, g, c
#3 3 b, e, k, r, j
Или, альтернативно, вы можете хранить все Region
s за Group
в list
aggregate(Region ~ Group, data = df, FUN = list)
# Group Region
#1 1 m
#2 2 i, l, g, c
#3 3 b, e, k, r, j
Обратите внимание, что, хотя выходные данные выглядят одинаково, toString
создает строку character
, в то время как list
хранит Region
s в list
. Последний может быть лучшим форматом для последующей обработки.
Аналогичные выходы могут быть достигнуты при использовании dplyr
library(dplyr)
df %>%
group_by(Group) %>%
summarise(Region = toString(Region))