2016-11-04 3 views
-2
head(per1) 
     flowcorrelativeid nrodocumento grupo_fict cod_jer 
21   431167  49574917   3  1146 
49   546385  54692750   1  320 
50   546388  48552750   2  320 
54   454662  54731807   8  104 
58   484984  17549854   4  104 
78   360883  46867674   1  101 
79   360883  56864674   7  101 
80   360883  46867668   1  258 
81   360883  66847668   5  258 
81   360883  57364201   1  178 
88   360883  58364201   6  178 

をsusbet私はこのデータフレームを持っている、と私はこのように、このデータフレームのサブセットの多くを生成したいと思います:はループRとのデータフレームを生成し

data_frame_104_1=subset(per1,per1$cod_jer==104 & per1$grupo_fict=1) 
data_frame_104_2=subset(per1,per1$cod_jer==104 & per1$grupo_fict=2) 
. 
. 
. 
data_frame_104_8=subset(per1,per1$cod_jer==104 & per1$grupo_fict=8) 

、その後

data_frame_101_1=subset(per1,per1$cod_jer==101 & per1$grupo_fict=1) 
data_frame_101_2=subset(per1,per1$cod_jer==101 & per1$grupo_fict=2) 
. 
. 
. 
data_frame_101_8=subset(per1,per1$cod_jer==101 & per1$grupo_fict=8) 

私は "cod_jer"(52グループ)と "grupo_fict"(8グループ)ごとにこれを必要とします

どうすればいいですか?

提案がありますか?

感謝!

+1

ただ、 'split'すなわち'スプリット使う '(PER1、リスト(PER1ます$ cod_jer、PER1ます$ grupo_fict)を、= TRUEをドロップ)とBTW data.frames''の 'list'を取得:このようなこれらの2つの列に基づいて要約する必要がある場合は、 'group_by'操作を使って' split'を使わずにこれを行うことができます – akrun

答えて

0

ループを使用したい場合は、sthを試すことができます。 、

grupo_fict_groups = as.numeric(names(table(per1$grupo_fict))) 
cod_jer_groups = as.numeric(names(table(per1$cod_jer))) 

data.frame = data.frame(NA) 

for(i in 1:length(cod_jer_groups)){ 
    for(j in 1:length(grupo_fict_groups)){ 
    data.frame = subset(per1,per1$cod_jer==cod_jer_groups[i] & per1$grupo_fict==grupo_fict_groups[j]) 
    assign_string = paste("data_frame",cod_jer_groups[i],grupo_fict_groups[j],sep = "_") 
    assign(assign_string,data.frame) 
    } 
} 
+0

ありがとう!!!後で完璧になるだろうが、私はそれを動作させることはできません:( – Natuk

+0

私はコードを編集して今すぐ動作するはずです... – burton030

+0

今すぐ使えます!!!!!完璧!!!ありがとうございます!!!! – Natuk

関連する問題