根据不同的字段值在R中创建子集数据集

时间:2018-05-09 15:51:00

标签: sql r subset distinct

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

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包但没有运气。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

我们可以使用split中的base Rlist的{​​{1}}。数据集的顺序似乎是data.frame值出现在' Country'中的顺序。在这种情况下,我们可以转换“国家/地区”。到指定了unique的{​​{1}}列

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