0

FY (6 レベル)、Region (10 レベル)、Service (24 レベル) の 3 つの要素を持つ R の大規模なデータセットに取り組んでいます。数値ベクトル SumOfUnits を 3 つのレベルすべてで合計する必要があります。これを行う唯一の方法は、データ フレームを最初に分割することです。6 つのデータ フレームを FY で分割し、次にそれらの 6 つを 10 のデータに分割します。フレームを領域ごとに分割し、それらの 10 個を 24 個のサービスに分割し、最終的に数値ベクトルの合計を取得して、すべてのデータ フレームを 1 つに再結合できます。このデータ フレームには、6*10*24 (1440) 行と 4 列があります。私が現在行っている方法は多くの分割を伴うため、分割の各レベルで使用できる関数を記述できるのではないかと考えましたが、R で「関数」をあまり使用していないので、何を書けばよいかわかりません(何かあれば)。

ここに私のデータフレームからの数行があります:

    FY    Region    Service               SumOfUnits
1   2006    1     Medication                 13
2   2006    1     Medication                 1
3   2006    1     Screening & Assessment    38
4   2006    1     Screening & Assessment    13
5   2006    1     Screening & Assessment    41
6   2006    1     Screening & Assessment    67
7   2006    1     Screening & Assessment    222
8   2006    1     Residential Treatment      38
9   2006    1     Residential Treatment     1558

これは、分割に使用しているコードです。

# Creating a data frame by year
X <- split(MIC, MIC$FY)

Y <- lapply(seq_along(X), function(x) as.data.frame(X[[x]])[, ]) 
#Assign the dataframes in the list Y to individual objects
A <- Y[[1]]
B <- Y[[2]]
C <- Y[[3]]
D <- Y[[4]]
E <- Y[[5]]
Q <- Y[[6]]

#Creating 10 dataframes from 2006 split by region
X <- split(A, A$Region)

Y <- lapply(seq_along(X), function(x) as.data.frame(X[[x]])[, ])

Reg1 <- Y[[1]]
Reg2 <- Y[[2]]
Reg3<- Y[[3]]
Reg4 <- Y[[4]]
Reg5<- Y[[5]]
Reg6 <- Y[[6]]
Reg7 <- Y[[7]]
Reg8 <- Y[[8]]
Reg9 <- Y[[9]]
Reg10<- Y[[10]]

#Creating 24 dataframes: for 2006, region 1
X <- split(Reg1, Reg1$Service)

Y <- lapply(seq_along(X), function(x) as.data.frame(X[[x]])[, ])

Serv1 <- Y[[1]]
Serv2 <- Y[[2]]
Serv3<- Y[[3]]
Serv4 <- Y[[4]]
Serv5<- Y[[5]]
#etc...

データのサンプルを次のようにしたいと思います。

FY    Region    Service    SumOfUnits
2006    1      Medication    4300
2006    2      Medication    3299
2006    3      Medication    2198
2007    1      Medication    5467
2007    2      Medication    3214
2007    3      Medication    9807
4

1 に答える 1