我有一个列表对象如下:
structure(list(bga_u = structure(list(buy_target_price = numeric(0),
sell_target_price = numeric(0), units_holding = 0, tx_record = structure(list(
`2010-12-01` = structure(list(buy_date = structure(14944, class = "Date"),
offer_price = 40.58, buy_unit = 3.15931809278285,
status = "hold"), .Names = c("buy_date", "offer_price",
"buy_unit", "status")), `2011-01-03` = structure(list(
buy_date = structure(14977, class = "Date"), offer_price = 42.2,
buy_unit = 3.03803621339166, status = "hold"), .Names = c("buy_date",
"offer_price", "buy_unit", "status")), `2011-02-01` = structure(list(
buy_date = structure(15006, class = "Date"), offer_price = 42.59,
buy_unit = 3.01021667539629, status = "hold"), .Names = c("buy_date",
"offer_price", "buy_unit", "status")), `2011-03-01` = structure(list(
buy_date = structure(15034, class = "Date"), offer_price = 43.37,
buy_unit = 2.95607858439309, status = "hold"), .Names = c("buy_date",
"offer_price", "buy_unit", "status")), `2011-04-01` = structure(list(
buy_date = structure(15065, class = "Date"), offer_price = 43.35,
buy_unit = 2.95744240380919, status = "hold"), .Names = c("buy_date",
"offer_price", "buy_unit", "status")), `2011-05-03` = structure(list(
buy_date = structure(15097, class = "Date"), offer_price = 44.53,
buy_unit = 2.87907316876551, status = "hold"), .Names = c("buy_date",
"offer_price", "buy_unit", "status"))), .Names = c("2010-12-01",
"2011-01-03", "2011-02-01", "2011-03-01", "2011-04-01", "2011-05-03"
))), .Names = c("buy_target_price", "sell_target_price",
"units_holding", "tx_record")), bwg_u = structure(list(buy_target_price = numeric(0),
sell_target_price = numeric(0), units_holding = 0, tx_record = structure(list(
`2010-11-02` = structure(list(buy_date = structure(14915, class = "Date"),
offer_price = 63.15, buy_unit = 2.03016830095215,
status = "hold"), .Names = c("buy_date", "offer_price",
"buy_unit", "status")), `2010-12-01` = structure(list(
buy_date = structure(14944, class = "Date"), offer_price = 64.19,
buy_unit = 1.99727571592348, status = "hold"), .Names = c("buy_date",
"offer_price", "buy_unit", "status")), `2011-09-01` = structure(list(
buy_date = structure(15218, class = "Date"), offer_price = 69.29,
buy_unit = 1.85026884406304, status = "hold"), .Names = c("buy_date",
"offer_price", "buy_unit", "status")), `2011-10-03` = structure(list(
buy_date = structure(15250, class = "Date"), offer_price = 58.05,
buy_unit = 2.20852934031229, status = "hold"), .Names = c("buy_date",
"offer_price", "buy_unit", "status"))), .Names = c("2010-11-02",
"2010-12-01", "2011-09-01", "2011-10-03"))), .Names = c("buy_target_price",
"sell_target_price", "units_holding", "tx_record"))), .Names = c("bga_u",
"bwg_u"))
Run Code Online (Sandbox Code Playgroud)
这是一个“列表中的列表”对象,由 3 个级别组成:
bga_u 和bwg_u)如果该特定交易的状态仍为“持有”,则存储在级别 2 中的“持有单位”是通过将每笔交易的级别 3 中的“买入单位”相加来计算的。
如何计算每只基金的“单位持有量”并置于第 2 级?
(我使用 R 2-3 年,但我是这个list对象的新手,我可能在概念上是错误的list。)
假设整个列表被命名为dl,将函数应用于列表的每个第一级(基金)。首先,制作交易记录的数据框,然后对单位求和并将其放入 中units_holding。
for(i in 1:length(dl)){
df<-do.call(rbind,lapply(dl[[i]]$tx_record,data.frame))
dl[[i]]$units_holding<-sum(df$buy_unit[df$status=="hold"])
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1507 次 |
| 最近记录: |