全て、
私が働いている会社は、このデータを使用して私にくれました。つまり、企業を横断単位とし、時間単位を会計年度としたTSCSデータです。各企業にはさまざまなアカウントがあります。特定の会社の各アカウントに費やされた合計金額を作成することに興味があります。
以下のデータの簡単な図を提供できます。関心firm
のある断面単位とします。それぞれfirm
が会社がお金を使うさまざまなアカウントを持っています。すべての企業に共通のアカウントもあれば、固有のアカウントもあります。特定の年にすべてfirm
の人が口座にお金を使ったわけではありません。実際、データの後半までアカウントに適格でなかったものもあれば、脱落したものもあります (そのため、パネル データはバランスが取れていないと見なすことができます)。そのため、提供されたデータの NA は 0 として扱われる可能性がありますが、少し問題があります。一部の企業は、特定の年に資格がありますが、口座にお金を受け取りません。他の企業は、中退または遅刻のために不適格です。
データはこんな感じで、ワイドフォーマットで渡されました。イラスト用の簡易版です。この図でfirm=B
は、1990 年度にアカウントの資格がなくfirm=C
、1992 年度にドロップアウトします。
firm account FY1990 FY1991 FY1992
A Account 1 500 900 1000
A Account 2 30 40 40
A Account 3 NA 60 20
A Account 4 NA 35 NA
B Account 1 NA 340 60
B Account 2 NA 500 800
B Account 3 NA 800 NA
B Account 4 NA 60 1000
C Account 1 1000 400 NA
C Account 5 500 60 NA
C Account 8 60 1000 NA
D Account 1 400 400 400
D Account 2 NA 1000 1000
D Account 3 300 40 300
D Account 6 NA 300 300
D Account 7 900 900 1000
D Account 8 1000 1200 1500
私がやりたい(そしてそうするように言われた)のは、このデータを次のように修正することでした:
firm account FY1990 FY1991 FY1992
A Account 1 500 900 1000
A Account 2 30 40 40
A Account 3 NA 60 20
A Account 4 NA 35 NA
A TOTAL 530 1035 1060
B Account 1 NA 340 60
B Account 2 NA 500 800
B Account 3 NA 800 NA
B Account 4 NA 60 1000
B TOTAL NA 1700 1860
C Account 1 1000 400 NA
C Account 5 500 60 NA
C Account 8 60 1000 NA
C TOTAL 1560 1460 NA
D Account 1 400 400 400
D Account 2 NA 1000 1000
D Account 3 300 40 300
D Account 6 NA 300 300
D Account 7 900 900 1000
D Account 8 1000 1200 1500
D TOTAL 2600 3840 4500
これは、Excel やその他のスプレッドシート プログラムでも同じように簡単に行うことができますが、それは面倒であり、R を使用してこれをプログラムする場合よりも多くの人的エラーを招きます。特定の会社のすべてのアカウントの下に行を追加しようとするのではなく、合計で新しいデータ フレームを作成することに反対しているわけではありません。特定の会計年度のアカウントに不適格な特定の会社の合計に 0 を入れる方が簡単かもしれません。私はいつでもいくつかのゼロを次の NA として再コーディングし、そのプロセスも自動化できます。
これにはループが必要だと思いますが、私は R プログラミングの初心者です。任意の入力をいただければ幸いです。
この図の再現可能なコードは次のとおりです。
firm <- c("A","A","A","A","B","B","B","B","C","C","C","D","D","D","D","D","D")
account <- c("Account 1","Account 2","Account 3","Account 4","Account 1","Account 2","Account 3","Account 4","Account 1","Account 5","Account 8","Account 1","Account 2","Account 3","Account 6","Account 7","Account 8")
FY1990 <- c(500,30,NA,NA,NA,NA,NA,NA,1000,500,60,400,NA,300,NA,900,1000)
FY1991 <- c(900,40,60,35,340,500,800,60,400,60,1000,400,1000,40,300,900,1200)
FY1992 <- c(1000,40,20,NA,60,800,NA,1000,NA,NA,NA,400,1000,300,300,1000,1500)
Data=data.frame(firm=firm, account=account, FY1990=FY1990, FY1991=FY1991, FY1992=FY1992)
summary(Data)
Data