Мы могли бы использовать split
от base R
до list
из data.frame
с. Порядок наборов данных, по-видимому, соответствует порядку, в котором значения unique
отображаются в поле «Страна». В этом случае мы можем преобразовать «Страна» в столбец factor
с levels
указанным
df$Country <- factor(df$Country, levels = unique(df$Country))
lst <- lapply(split(df, df$Country), `row.names<-`, NULL)
names(lst) <- paste0("Data", seq_along(lst))
Лучше использовать list
для обработки данных, чем иметь несколько объектов. Но если нам это действительно нужно, то list2env
list2env(lst, envir = .GlobalEnv)
Data1
# SaleID Country
#1 Sale1 US
#2 Sale3 US
Data2
# SaleID Country
#1 Sale2 Mexico
#2 Sale6 Mexico
Data3
# SaleID Country
#1 Sale4 Canada
#2 Sale5 Canada
#3 Sale7 Canada