2017-12-14 6 views
-1

で不足しているエントリを検索します。データ量が大きいため私は2つのカラムを持つデータフレームを処理しています異なる時間帯

portfolio date  stock Value 
1   200006  Apple 10 
1   200006  Google 20 
1   200006  IBM  30 
1   200007  Apple 10 

、私は月に日2000年6月からチェックする簡単な方法を見つけたいです2000年、ポートフォリオ1内で、GoogleとIBMの両方の株式が失われています。返品はc( "IBM"、 "GOOGLE")になります。私は、2000年7月に株式がリストアップされていない情報を使用し、2000年7月にポートフォリオのバランスをとるために、2000年6月にこれらの株式の価値を取得します。この場合、c( "IBM"、 "GOOGLE") Appleの価値をさらに調整するために値(20,30)を取得します。

4つの列のデータ型は、ポートフォリオ、日付、株価、Valueのfactor、Integer、factorおよびIntegerです。

この問題を処理できる機能やパッケージはありますか?

+0

感謝。私は、問題を説明するためにいくつかの背景を追加するだけです。それは複雑なプロジェクトのほんの一歩です。 – kaneroy

答えて

0

あなたはこれを試すことができます:あなたの編集のための

library(data.table) 
setDT(df) 
# Get all possible stocks 
stocks <- unique(df$stock) 

# Get missing stocks 
df[, stocks[!stocks %in% stock], .(portfolio, date)] 
# portfolio date  V1 
# 1:   1 200007 Google 
# 2:   1 200007 IBM 

# Or vector output (no date or portfolio info) 
df[, stocks[!stocks %in% stock], .(portfolio, date)]$V1 
# [1] "Google" "IBM" 
+0

それは素晴らしいです!あなたのアイデアをありがとう! – kaneroy

関連する問題