嵌入条件表达式中的错误

时间:2014-05-06 20:06:13

标签: r

我有一个条件表达式,当函数的结果满足(== 7)时(VitPath $状态)意味着当其条件(<0.1)也满足时其他嵌入式条件表达式的总和导致G

G<-if(tail(VitPath$states,1)==7) 
{if(summary(ResFit)$coef[370]<0.1) summary(ResFit)$coef[64]*summary(ResFit)$coef[91]   
else 0 + 
if(summary(ResFit)$coef[371]<0.1) summary(ResFit)$coef[65]*summary(ResFit)$coef[93] 
else 0 +  
if(summary(ResFit)$coef[372]<0.1) summary(ResFit)$coef[66]*summary(ResFit)$coef[95] 
else 0 + 
if(summary(ResFit)$coef[373]<0.1) summary(ResFit)$coef[67]*summary(ResFit)$coef[97]    
else 0 +   
if(summary(ResFit)$coef[374]<0.1) summary(ResFit)$coef[68]*summary(ResFit)$coef[99]   
else 0 + 
if(summary(ResFit)$coef[375]<0.1) summary(ResFit)$coef[69]*summary(ResFit)$coef[101] 
else 0 + 
if(summary(ResFit)$coef[376]<0.1) summary(ResFit)$coef[70]*summary(ResFit)$coef[103] 
else 0 + 
if(summary(ResFit)$coef[377]<0.1) summary(ResFit)$coef[71]*summary(ResFit)$coef[105] 
else 0 +
if(summary(ResFit)$coef[378]<0.1) summary(ResFit)$coef[72]*summary(ResFit)$coef[107]   
else 0} else 0

似乎嵌入的条件表达式没有被正确地表达,因为它在第一个嵌入式表达式中产生错误,因为它似乎不理解乘法。

Computing the asymptotic covariance matrix of estimates
Error en if (summary(ResFit)$coef[370] < 0.1) summary(ResFit)$coef[64] *  : 
valor ausente donde TRUE/FALSE es necesario

有没有办法在不改变现有格式的情况下执行此操作。当我放置括号或括号(摘要(ResFit)$ coef [71] *摘要(ResFit)$ coef [105])时,它也不起作用。

非常感谢

EDITED

ResFit由以下表达式X生成,其中包含数值向量

ResFit = HMMFit(X, nStates=9, control=list(init="KMEANS"))

1 个答案:

答案 0 :(得分:1)

试试这个。这是一个布尔代数版本;当测试失败时,结果将为0但是当它成功时它将是产品。我假设你只想要汇总coef矩阵的第一列,因为乘以标准误差没有多大意义:

  G<-if(tail(VitPath$states,1)==7) {  summary(ResFit)$coef[370:378,1]<0.1 )*
                            ( summary(ResFit)$coef[64:72,1])*(summary(ResFit)$coef[91:107,1]) }

这应该更快,更清晰,更容易维护。如果您使用的是不同于lm的建模函数,则应发布更多详细信息。我假设从$coef返回的结构 - 调用就像:

系数
一个p×4矩阵,其中包含估计系数,标准误差,t-统计量和相应(双侧)p值的列。别名系数被省略。