查找不同时段

时间:2017-12-14 22:29:07

标签: r dataframe

我正在处理一个包含两列的数据框:

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

由于数据量很大,我想找到一种简单的方法来检查从2000年6月到2000年7月,在投资组合1中,谷歌和IBM都缺失了。回报将是c(“IBM”,“GOOGLE”)。我将使用2000年7月未列出哪些股票的信息,并在2000年6月获得这些股票的价值以平衡2000年7月的投资组合。所以在这种情况下,我希望得到c(“IBM”,“GOOGLE”)和然后得到他们的价值(20,30)进一步调整苹果的价值10。

四列的数据类型为:factor,Integer,factor和Integer for portfolio,date,stock and Value。

是否有任何功能或包可以解决这个问题?

1 个答案:

答案 0 :(得分: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"