2017-09-13 67 views
-2

我有一个由列组成的数据集,包括:指标,值,省份,目标编号和排名。基于这个数据集,我想制作省级数据集。换句话说,我想制作一个名为省名的数据集的子集。我如何用for循环做到这一点?或者还有其他方法吗? 谢谢!如何使用for循环来创建子集数据框

+0

“省”使用有一个看看'split'功能。 – James

+3

尝试'split(df,factor = df $ Province)'其中'df'是您的'data.frame'。如果您可以在问题描述中分享数据样本,人们将能够以更好的方式帮助您。你可以在问题描述中共享'dput(head(df))'的输出。 – TUSHAr

回答

0

欢迎来到堆栈溢出。

假设你有一个data.frame这样的:

ex <- data.frame("Indicator" = c(1,1,2,1), "Value" = c(2,3,4,1), 
"Province" = c("a","a","b","b"), "goal number" = c(1,1,1,1), 
"ranking" = c(1,1,5,5)) 

ex 
Indicator Value Province goal.number ranking 
1   1  2  a   1  1 
2   1  3  a   1  1 
3   2  4  b   1  5 
4   1  1  b   1  5 

那么你可以使用subset,使您的data.frame的子集:

subset(ex, ex$Province == "a") 

    Indicator Value Province goal.number ranking 
1   1  2  a   1  1 
2   1  3  a   1  1 

对于未来的问题:请提供reproducible example

1

Cosidering数据帧的名字为“DF”和列上要分割成小的数据帧如下代码

library(plyr) 
list_df = dlply(df, "Province", identity) 
list2env(list_df,envir=.GlobalEnv)