ID类型销售日期
1 1 $ 5,027 18-Jan-2016
2 1 $ 2,646 10-Nov-2012
3 1 $ 7,549 11 - 2018年2月11日
4 2 $ 4,536 18-Feb-2016
5 2 $ 3,118 26-Aug-2017
6 3 $ 9,815 07-Jun-2017
7 3 $ 885 2017年12月15日
8 3 $ 2,911 10-Nov-2017
9 3 $ 1,823 2015年10月12日
10 4 $ 5,723 04-Jul-2014
11 5 $ 2,612 31-Mar-2015
12 5 $ 3,344 06-Jan-2016
13 5 $ 4,215 22-May-2016
14 6 $ 5,500 23-Mar-2018
要将上述数据集(Main)拆分为Type,我们可以使用以下宏。如何在R中做同样的事情 提前致谢。
%MACRO split;
%DO m = 1 %TO 6 ;
DATA type_%eval(&m) ;
SET main ;
IF Type = &m then output type_%eval(&m) ;
RUN ;
%END ;
%MEND split ;
%split ;
ID类型销售日期
1 1 $ 5,027 18-Jan-2016
2 1 $ 2,646 10-Nov-2012
3 1 $ 7,549 11-Feb-2018
ID类型销售日期
4 2 $ 4,536 18-Feb-2016
5 2 $ 3,118 26-Aug-2017
ID类型销售日期
6 3 $ 9,815 07-Jun-2017
7 3 $ 885 2017年12月15日
8 3 $ 2,911 10-Nov-2017
9 3 $ 1,823 2015年10月12日
这将为我提供以下数据集Type1,Type2,Type3 ..... Type6
答案 0 :(得分:0)
您可以使用split
。如果您的数据框名为df
,请执行
df.list <- split(df, df$Type)
这为您提供了数据框列表。您可以使用$
和Type
的值(如下所示)获取单个数据框。由于这些名称不遵循不以数字开头的惯例,因此您必须在它们周围加上刻度或引号
df.list$'1'
您还可以使用列表索引,例如df.list[3]
代表第三个data.frame
。在你的例子中,巧合的是,它们有时会对齐,例如df.list$'1'
与df.list[1]
相同。