【问题标题】:Warning meassage: number of items to replace is not a multiple of replacement length警告信息:要替换的项目数不是替换长度的倍数
【发布时间】:2014-05-14 03:44:23
【问题描述】:

运行此代码时收到警告。

例如,当我把 tm1<- summary(tmfit)[c(4,8,9)], 我可以得到结果,但我需要为每个 $i$ 运行此代码。

为什么会出现此错误?

有什么方法可以代替for 循环来做到这一点?

具体来说,我有许多回归量 ($y$) 具有相同的两个回归量 ($x$'s)。

我怎样才能得到这些回归分析的结果(做一些比较)?

dreg=read.csv("dayreg.csv")
fundr=read.csv("fundreturnday.csv")
num=ncol(fundr)
exr=dreg[,2]
tm=dreg[,4]
for(i in 2:num)
{
  tmfit=lm(fundr[,i]~exr+tm)
  tm1[i]<- summary(tmfit)[c(4,8,9)]
}

非常感谢任何帮助

【问题讨论】:

    标签: r regression


    【解决方案1】:

    尝试将结果存储到列表而不是向量中。

    dreg=read.csv("dayreg.csv")
    fundr=read.csv("fundreturnday.csv")
    num=ncol(fundr)
    exr=dreg[,2]
    tm = list()
    for(i in 2:num)
    {
      tmfit=lm(fundr[,i]~exr+tm)
      tm1[[i]]<- summary(tmfit)[c(4,8,9)]
    }
    

    你可以像这样查看列表中的元素

    tm1[[2]]
    

    【讨论】:

    • @jsk。谢谢你的回答。另一个问题:你知道摘要(tmfit)是一个长度为11的递归列表。我想保存tm1(包括三个项目:系数,r-aquared,adj .r-squared) 转换为 csv 文件,但我得到了凌乱的文件。为什么 ?code:write.csv(tm1,"tm_reg.csv")
    • 嗨 Jacky,请将此作为单独的问题发布在网站上。谢谢
    猜你喜欢
    • 2020-07-08
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多