从电子表格中隔离数据框架以创建列表

时间:2018-12-11 03:42:27

标签: r list dataframe

如何从大型数据电子表格中隔离R中的数据框,并从隔离的数据框中创建列表?

例如,我在不同州的不同组销售的苹果销售数据的格式为:

> data
1                    NSW   VIC   QLD
2 Group1       2013  500   501   985     
3              2014  601   520   999
4              2015  410   435   894
5 Group2       2013  508   501   806     
6              2014  694   780   899
7 Group3       2013  305   501   985     
8              2014  122   440   704
9              2015  210   235   523

我希望第1组(第2行到第4行)的所有数据都为dataframe1, 来自第2组的数据(第5至6行)为dataframe2, Group3(第7至9行)中的数据变为dataframe3等。

然后我列出一个清单:

data.list <- list(dataframe1,dataframe2,dataframe3, ....)

由于每个数据帧的行数可能不同,所以我无法执行一个循环,即每x数行都生成一个数据帧。基于包含“组”隶属关系的第一列将原始数据集分离为单个数据帧的最佳方法是什么?

我想创建一个看起来像这样的列表:

> data.list
[[Group1]]
                     NSW   VIC   QLD
1              2013  500   501   985     
2              2014  601   520   999
3              2015  410   435   894

[[Group2]]
                     NSW   VIC   QLD
1              2013  508   501   806     
2              2014  694   780   899

[[Group3]]
                     NSW   VIC   QLD
1              2013  305   501   985     
2              2014  122   440   704
3              2015  210   235   523
  • 注意:这只是伪数据,可以随意读取最容易为其编写代码的任何数据。

1 个答案:

答案 0 :(得分:0)

df <- structure(list(group = structure(c(2L, 1L, 1L, 3L, 1L, 4L, 1L, 
                                         1L), .Label = c("", "Group1", "Group2", "Group3"), class = "factor"), 
                     year = c(2013L, 2014L, 2015L, 2013L, 2014L, 2013L, 2014L, 
                              2015L), NSW = c(500L, 601L, 410L, 508L, 694L, 305L, 122L, 
                                              210L), VIC = c(501L, 520L, 435L, 501L, 780L, 501L, 440L, 
                                                             235L), QLD = c(985L, 999L, 894L, 806L, 899L, 985L, 704L, 
                                                                            523L)), class = "data.frame", row.names = c(NA, -8L))

df_list <- split(df, as.factor(df$group))

split将帮助您使用baseR从组中创建各种列表