2017-09-13 155 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)