私は、ある列の特定の行の値を別の列の行の値に基づいて返すrでコードを構築しようとしています。私は、次のデータセット(BTM
)を持っている別の列で実行される制限に基づいてある列から特定の値を抽出する方法はありますか?
より具体的な:
Date CompanyName MarketValue BookValue BookToMarket
31.12.87 Bure Equity 2182000 2260267
31.01.88 Bure Equity 2102000 1950267
29.02.88 Bure Equity 2182000 2550267
...
31.07.88 Bure Equity 2022000 2980267 BookValue Des87/MarketValueJuly88
31.08.88 Bure Equity 2162000 2650267
30.09.88 Bure Equity 2272000 2390267 BookValue Des87/MarketValueSept88
31.10.88 Bure Equity 2122000 2650267
30.11.88 Bure Equity 2382000 2350267
31.12.88
31.12.87 H&M 2182000 2650267
31.01.88 H&M 2102000 2650267
29.02.88 H&M 2182000 2650267
(これは、全データセットからほんの抜粋であり、私は約1000の企業や各企業のための月次データの30年を持っている)
各日付の各会社のBook-to-Marketの価値を計算する必要があります。しかし、1988年7月から1989年6月までの間の時価を計算する際には、1987年12月の帳簿価額を使用する必要があります。期間は1988年7月 - 1989年6月。 Rは、指定された月の市場価値を使用しながら1987年からの簿価を使用する必要があります。
言い換えれば、私は次のコードを書く必要があります。 "Bure Equity"の帳簿価額を取得した日付は31.12.87です。次に、この帳簿価額を7月88日から6月89日までの「Bure Equity」の市場価値で割ります。
(これはコード化する必要があり、各社および期間1987-2016の間で有効です。
私はRで次のように入力しようとした。このためには:
BTM$"Book to Market" <- ((BTM$"Book Value" | "Date"=="1987-12")/BTM$"Market Value")
をこれは私にいくつかの値が得られますが、正しいものではありません予想通り。
理想的には、「日付」列に12月87日、12月88日、12月89日などに対応する「簿価」欄の値を私に与えることができる式が必要です。
さらに私は、7月89、以下ヶ月で7月88-june89を異なる市場価値に選ばれたブックの値を分割するRが必要 - Rは、会社を分けることも重要である
など6月90互いに。たとえば、1997年12月のH & Mの帳簿価額を、H & M(およびBure Equityではなく)の7月88日の市場価値で除算することしかできないことを理解するためにRが必要です。
どのように私はこれを行うことができますか?
私は得ることができるヒントをありがとう。
です。再生できるようにデータの再現可能な例を投稿できますか? 'dput(head(BTM))'は動作するはずです。 – csgroen
あなたの例では、あなたのすべての 'BookValue'は同じです、異なる' BookValue'を持っているところでデータを提供できますか? – useR
私は今BookValueのを変更しました: – Marthe