微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何制作用于进行线性回归并将输出写入Excel的函数?

如何解决如何制作用于进行线性回归并将输出写入Excel的函数?

我试图用R编写一个函数,该函数接收一个数据帧,创建一个模型,对其进行汇总,然后将输出写入excel。传递给该函数的参数是我希望excel文件具有的文件名以及将在其上进行模型创建的变量。

这是我一直尝试使用的代码

functionForRunningRegressionWritingExcel <- function(fileName,regressionName,dataFrame,y,xFactor,w,modelType) {
  
  regressionName <- lm(data = dataFrame,dataFrame[,y] ~ factor(dataFrame[,xFactor]) * dataFrame[,w],model = as.character(modelType))
  summary(regressionName)
  plot(regressionName)
  fileName <- tidy(regressionName)
  writexl::write_xlsx(fileName,"/Users/otakarkorinek/Documents/SOC/Regression Results/new_regression.xlsx")

  ggPredict(change_vs_week_before_stimulus_payments_on_case_rate_change,se=TRUE,interactive=TRUE)
  
} 

但是,由于某些原因,当我尝试使用以下参数运行该函数时:

functionForRunningRegressionWritingExcel("regression","change_on_income",Affinity_County_Weekly.csv,"spend_all","winner2016",w = "case_rate","within")
  

我遇到了错误

Error in model.frame.default(formula = dataFrame[,: 
  invalid type (list) for variable 'dataFrame[,y]'

您是否知道可能是什么问题以及如何解决

解决方法

您可以使用传递的字符串创建公式对象。尝试使用此功能。

functionForRunningRegressionWritingExcel <- function(fileName,regressionName,dataFrame,y,xFactor,w,modelType) {
  
  regressionName <- lm(data = dataFrame,paste0(y,'~factor(',')*',w),model = modelType)
  summary(regressionName)
  plot(regressionName)
  fileName <- tidy(regressionName)
  writexl::write_xlsx(fileName,"/Users/otakarkorinek/Documents/SOC/Regression Results/new_regression.xlsx")
  ggPredict(change_vs_week_before_stimulus_payments_on_case_rate_change,se=TRUE,interactive=TRUE)
} 

假设Affinity_County_Weekly.csv是数据框名称,然后可以像往常一样使用

进行调用
functionForRunningRegressionWritingExcel("regression","change_on_income",Affinity_County_Weekly.csv,"spend_all","winner2016",w = "case_rate","within")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。