2017-11-29 4 views
1

私はデータセット(data_2、以下を参照)でRでglm()コマンドを使用しようとしています。私は、次のコマンドを使用します。glmがエラーを返します。何が間違っていますか?

glm(formula = GRM_KerkMeerlo ~ ((fGS*0.865 + fQS*EC_QS + fXS*EC_fXS)/Q), data = data_2) 

私は正しいことをやっていたと思ったが、私は、この入力を実行すると、私はエラーを取得:私はこのウェブサイト上のすべてを見てきました

Error in terms.formula(formula, data = data) : invalid model formula in ExtractVars

を私が間違っていたものを見つけましたが、結果がなければ、私はここで私が間違って行った地球上のものを求めています。

私は簡単に解決できるちょっとした間違いをしたと思います。何も見えません。

ありがとうございました!

data_2 
     date P ETpot  Q T  fXS GRM_KerkMeerlo GRM_SintJorisweg fGS 

     fQS 
    1 2016032400 0 0.000 0.00816 4.0 0.00431  0.49775   0.45550  NA  NA 
    2 2016032401 0 0.000 0.00814 4.6 0.00431  0.49675   0.45675 0.0022 0.0022 
    3 2016032402 0 0.000 0.00816 5.2 0.00431  0.49725   0.45600 0.0022 0.0021 
    4 2016032403 0 0.000 0.00812 5.3 0.00431  0.49600   0.45625 0.0021 0.0021 
    5 2016032404 0 0.000 0.00809 5.5 0.00431  0.49550   0.45525 0.0021 0.0020 
    6 2016032405 0 0.001 0.00812 6.5 0.00431  0.49525   0.45425 0.0021 0.0020 
    7 2016032406 0 0.009 0.00807 6.9 0.00431  0.49575   0.45550 0.0021 0.0019 
    8 2016032407 0 0.018 0.00803 7.0 0.00431  0.49600   0.45400 0.0021 0.0019 
    9 2016032408 0 0.032 0.00801 7.4 0.00431  0.49700   0.45175 0.0021 0.0019 
    10 2016032409 0 0.060 0.00801 8.3 0.00431  0.49800   0.45050 0.0021 0.0018 
    11 2016032410 0 0.066 0.00788 8.7 0.00431  0.49825   0.45100 0.0021 0.0018 
    12 2016032411 0 0.088 0.00799 9.5 0.00431  0.49850   0.45075 0.0021 0.0018 
    13 2016032412 0 0.102 0.00797 9.6 0.00431  0.50200   0.45025 0.0021 0.0017 
    14 2016032413 0 0.077 0.00805 9.9 0.00431  0.50150   0.45000 0.0021 0.0017 
    15 2016032414 0 0.074 0.00801 9.9 0.00431  0.50075   0.44775 0.0021 0.0017 
    16 2016032415 0 0.053 0.00803 9.7 0.00431  0.50150   0.44825 0.0021 0.0016 
    17 2016032416 0 0.018 0.00799 9.4 0.00431  0.50050   0.44725 0.0021 0.0016 
    18 2016032417 0 0.003 0.00803 8.8 0.00431  0.49975   0.45000 0.0021 0.0016 
    19 2016032418 0 0.000 0.00793 8.1 0.00431  0.49925   0.45025 0.0021 0.0015 
    20 2016032419 0 0.000 0.00791 8.1 0.00431  0.49825   0.44600 0.0021 0.0015 
    21 2016032420 0 0.000 0.00797 8.1 0.00431  0.49875   0.44475 0.0021 0.0015 
    22 2016032421 0 0.000 0.00791 7.3 0.00431  0.50100   0.44300 0.0021 0.0014 
    23 2016032422 0 0.000 0.00784 7.0 0.00431  0.50100   0.44125 0.0021 0.0014 
    24 2016032423 0 0.000 0.00795 7.6 0.00431  0.50050   0.44050 0.0021 0.0014 
    25 2016032500 0 0.000 0.00791 7.6 0.00374  0.50075   0.43975 0.0021 0.0013 
+0

[再現性の例](https://stackoverflow.com/a/5963610/3625022)を提供してください。 – Clarinetist

+4

数式(乗算、除算)に数多くの算術演算を実行しようとしているようです。 Rのモデル式には特殊な構文があり、算術的に変数を組み合わせることは可能ですが、一般的にはそうではありません。データフレームの列を調整して、式を 'response〜term1 + term2 + ... 'などのように変更するだけで簡単に書くことができます。 – joran

答えて

1

@joranさんのコメントによると、あなたの数式で変数の算術演算をしようとしています。式に入力する前に変数の算術演算を行うのがより望ましいかもしれませんが、I関数で計算を実行することができます。 "I"は "+"、 " - "などの演算子の解釈を禁止します。 " "/"、 "^(?I)" は、式の演算子のように":

mod = glm(formula = GRM_KerkMeerlo ~ I((fGS*0.865 + fQS*fXS)/Q), data = df) 
結果:ので両方私は、実証の目的のために、あなたの計算式を変更し

> summary(mod) 

Call: 
glm(formula = GRM_KerkMeerlo ~ I((fGS * 0.865 + fQS * fXS)/Q), 
    data = df) 

Deviance Residuals: 
     Min   1Q  Median   3Q   Max 
-0.0030453 -0.0021617 -0.0000753 0.0017784 0.0032462 

Coefficients: 
           Estimate Std. Error t value Pr(>|t|)  
(Intercept)      0.45976 0.03871 11.877 4.85e-11 *** 
I((fGS * 0.865 + fQS * fXS)/Q) 0.17041 0.16921 1.007 0.325  
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for gaussian family taken to be 4.71708e-06) 

    Null deviance: 0.00010856 on 23 degrees of freedom 
Residual deviance: 0.00010378 on 22 degrees of freedom 
    (1 observation deleted due to missingness) 
AIC: -222.32 

Number of Fisher Scoring iterations: 2 

注意およびEC_fXSは提供されていません。

データ:私たちはあなたの問題を複製することができるように

df = structure(list(date = c(2016032400L, 2016032401L, 2016032402L, 
2016032403L, 2016032404L, 2016032405L, 2016032406L, 2016032407L, 
2016032408L, 2016032409L, 2016032410L, 2016032411L, 2016032412L, 
2016032413L, 2016032414L, 2016032415L, 2016032416L, 2016032417L, 
2016032418L, 2016032419L, 2016032420L, 2016032421L, 2016032422L, 
2016032423L, 2016032500L), P = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L), ETpot = c(0, 0, 0, 0, 0, 0.001, 0.009, 0.018, 0.032, 
0.06, 0.066, 0.088, 0.102, 0.077, 0.074, 0.053, 0.018, 0.003, 
0, 0, 0, 0, 0, 0, 0), Q = c(0.00816, 0.00814, 0.00816, 0.00812, 
0.00809, 0.00812, 0.00807, 0.00803, 0.00801, 0.00801, 0.00788, 
0.00799, 0.00797, 0.00805, 0.00801, 0.00803, 0.00799, 0.00803, 
0.00793, 0.00791, 0.00797, 0.00791, 0.00784, 0.00795, 0.00791 
), T = c(4, 4.6, 5.2, 5.3, 5.5, 6.5, 6.9, 7, 7.4, 8.3, 8.7, 9.5, 
9.6, 9.9, 9.9, 9.7, 9.4, 8.8, 8.1, 8.1, 8.1, 7.3, 7, 7.6, 7.6 
), fXS = c(0.00431, 0.00431, 0.00431, 0.00431, 0.00431, 0.00431, 
0.00431, 0.00431, 0.00431, 0.00431, 0.00431, 0.00431, 0.00431, 
0.00431, 0.00431, 0.00431, 0.00431, 0.00431, 0.00431, 0.00431, 
0.00431, 0.00431, 0.00431, 0.00431, 0.00374), GRM_KerkMeerlo = c(0.49775, 
0.49675, 0.49725, 0.496, 0.4955, 0.49525, 0.49575, 0.496, 0.497, 
0.498, 0.49825, 0.4985, 0.502, 0.5015, 0.50075, 0.5015, 0.5005, 
0.49975, 0.49925, 0.49825, 0.49875, 0.501, 0.501, 0.5005, 0.50075 
), GRM_SintJorisweg = c(0.4555, 0.45675, 0.456, 0.45625, 0.45525, 
0.45425, 0.4555, 0.454, 0.45175, 0.4505, 0.451, 0.45075, 0.45025, 
0.45, 0.44775, 0.44825, 0.44725, 0.45, 0.45025, 0.446, 0.44475, 
0.443, 0.44125, 0.4405, 0.43975), fGS = c(NA, 0.0022, 0.0022, 
0.0021, 0.0021, 0.0021, 0.0021, 0.0021, 0.0021, 0.0021, 0.0021, 
0.0021, 0.0021, 0.0021, 0.0021, 0.0021, 0.0021, 0.0021, 0.0021, 
0.0021, 0.0021, 0.0021, 0.0021, 0.0021, 0.0021), fQS = c(NA, 
0.0022, 0.0021, 0.0021, 0.002, 0.002, 0.0019, 0.0019, 0.0019, 
0.0018, 0.0018, 0.0018, 0.0017, 0.0017, 0.0017, 0.0016, 0.0016, 
0.0016, 0.0015, 0.0015, 0.0015, 0.0014, 0.0014, 0.0014, 0.0013 
)), .Names = c("date", "P", "ETpot", "Q", "T", "fXS", "GRM_KerkMeerlo", 
"GRM_SintJorisweg", "fGS", "fQS"), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", 
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", 
"25")) 
関連する問題