我正在尝试根据不同的字段值将数据集拆分为多个子集。例如:
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包但没有运气。任何帮助将不胜感激
答案 0 :(得分:0)
我们可以使用split
中的base R
到list
的{{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