You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中matrix函数与管道操作报错:未使用参数及dimnames问题排查

R语言代码报错排查求助

我在运行Coursera免费课程《Using R for Regression and Machine Learning in Investment》中的两段代码时均出现报错,具体情况如下:

第一段代码及报错

betas <- betas %>%
  matrix(data= models, nrow = 5, ncol = num_factors +1, byrow = T, dimnames = list) %>%
  data.frame(row.names = FAANG)%>%
  colnames(betas) <- c("Constant", "Mkt_RF", "SMB", "HML", "RMW", "CMA")

报错信息:

Error in matrix(., data = models, nrow = 5, ncol = num_factors + 1, byrow = T,  : 
  unused argument (.)

我并未在data参数前添加.符号,对此感到困惑。

第二段修改后的代码及报错

betas <- betas %>%
  matrix(unlist(models),nrow = num_factors, ncol = num_factors +1, byrow = T) %>%
  data.frame(row.names = FAANG)%>%
  colnames(betas) <- c("Constant", "Mkt_RF", "SMB", "HML", "RMW", "CMA")

报错信息:

Error in matrix(., unlist(models), nrow = num_factors, ncol = num_factors +  : 
  'dimnames' must be a list

课程提供的原始代码也无法正常运行,恳请帮忙排查问题。


问题分析与修正方案

  1. 第一段代码错误原因
    管道符%>%会自动将左侧的对象(这里是betas)作为第一个参数传递给下一个函数(matrix),但你显式指定了data=models,导致matrix同时收到了管道传递的.和data=models两个参数,而matrix函数没有名为.的参数,因此报错。

  2. 第二段代码错误原因

  • matrix函数的第一个参数是待转换的向量,你把unlist(models)放在了第二个位置,管道传递的.变成了第一个参数,参数顺序完全错误;
  • 管道末尾不能直接使用colnames(betas) <- ...这种赋值语句,管道传递的对象无法被这种赋值操作正确接收;
  • nrow设置为num_factors不合理,FAANG是5家公司,对应5行回归结果,所以nrow应该是5。

修正后的代码示例

假设models是包含5个回归模型的列表(对应FAANG每家公司的因子回归),可以按以下方式处理:

# 提取所有模型的系数
beta_coefs <- lapply(models, coef)
# 转换为矩阵并设置维度名称
betas_matrix <- matrix(unlist(beta_coefs), 
                       nrow = length(FAANG), 
                       ncol = num_factors + 1, 
                       byrow = TRUE,
                       dimnames = list(FAANG, c("Constant", "Mkt_RF", "SMB", "HML", "RMW", "CMA")))
# 转换为数据框
betas <- as.data.frame(betas_matrix)

如果一定要用管道写法,可以调整为:

betas <- models %>%
  lapply(coef) %>%
  unlist() %>%
  matrix(nrow = length(FAANG), 
         ncol = num_factors + 1, 
         byrow = TRUE,
         dimnames = list(FAANG, c("Constant", "Mkt_RF", "SMB", "HML", "RMW", "CMA"))) %>%
  as.data.frame()

内容的提问来源于stack exchange,提问作者Chern Hong Pang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:10:28