首页 > 解决方案 > 基于不同的字段值在 R 中创建子集数据集

问题描述

我正在尝试根据不同的字段值将数据集拆分为多个子集。例如:

SaleID Country
Sale1 US
Sale2 Mexico
Sale3 US
Sale4 Canada
Sale5 Canada
Sale6 Mexico
Sale7 Canada

期望的输出(3 个子集)

Data 1
SaleID Country
Sale1 US
Sale3 US

Data 2
SaleID Country
Sale2 Mexico
Sale6 Mexico


Data 3
Sale4 Canada
Sale5 Canada
Sale7 Canada

有任何想法吗?我的实际数据集有近 100 个不同的国家。我已经探索过在 R 中使用 sqldf 包,但还没有运气。任何帮助,将不胜感激

标签: sqlrsubsetdistinct

解决方案


最好创建L这些数据集的列表。然后您可以引用L$USor L[["US"]],比如说,并使用 引用所有名称names(L)

L <- split(DF, DF$Country)

可以使用以下行将它们复制到全局环境中的单个数据帧,但实际上并不推荐:

list2env(L, .GlobalEnv)

推荐阅读