首页 > 解决方案 > 错误:“闭包”类型的对象不是子集

问题描述

我正在尝试访问 Bond_Prices 中的值,这是portfolio_price函数外部 for 循环中函数的结果之一,但出现以下错误:

“portfolio_price$Bond_Prices 中的错误:'closure' 类型的对象不是子集”。

有人可以帮我弄这个吗?

我尝试使用portfolio_price$Bond_Prices[1]以及bond_prices. Bond_Prices 的输出是

$Bond_Prices
 [1] 96.15385 86.13218 88.89964 76.28952 75.61329 72.52458 75.99178 68.98708 67.29044 61.39133 61.61987 62.45970 53.03214

所以我希望portfolio_price$Bond_Prices[1]返回 96.15385

portfolio_price <- function(){
  bond_prices <- c()

  for(i in 1:length(table_2b$Bond)){
    B0 <- face_value_2/(1+table_2b$Coupon_Rate[i])^i
    bond_prices[i] = B0
    }

  bond_prices_sum <- 0

  for(i in 1:length(table_2b$Bond)){
    bond_prices_sum <- sum(bond_prices_sum,bonds_price[i]*(table_2b$Quantity[i]/table_2b$Quantity))
    }  

  return(list(Bond_Prices = bond_prices, Portfolio_Price = bond_prices_sum))
  }

标签: rclosures

解决方案


推荐阅读