2016-04-03 5 views
0

私はRを初めて使い、単純なANOVAをしようとしています。私は、データフレーム作成:as.numeric/as.integerはRで働いていない

MeanTable <- data.frame(Age=c("2","2","2","4","4","4","6","6","6"), 
    Yield=c("12.812","15.17","13.868","24.456","23.444","25.312", 
     "21.146","21.63","21.84"),stringsAsFactors = FALSE) 

をそしてANOVAを実行しようとしましたが、私は、この警告メッセージました:

警告メッセージ: 1:mean.defaultで(X [I]を]、...): 引数が数値でも論理でもありません。戻り値なし 2:平均値.default(X [[i]]、...): 引数が数値でも論理でもありません。戻り値なし 3: mean.default(X [[i]]、...): 引数が数値でも論理的でもありません。戻り値なし

私は、as.numericを使用して、値を係数から数値に変換することを意味していると仮定します。だから私はこれをした:

as.numeric(MeanTable$Age) 
is.numeric(MeanTable$Age) 

しかし、FALSEを得た。私は間違って何をしていますか?または、私の問題は他に何か他のものですか?

+2

なぜあなたはすべてを囲んでいるのですか?それともデータがどのようにあなたに届くのでしょうか?ブルートフォースするには、MeanTable [] < - lapply(MeanTable、type.convert) 'を追加することができますが、これは引用符を使わないことで回避できます – rawr

答えて

2

データフレーム内の応答値を数値に変更する必要があります。

MeanTable <- data.frame(Age=c("2","2","2","4","4","4","6","6","6"), 
    Yield=c("12.812","15.17","13.868","24.456","23.444","25.312", 
     "21.146","21.63","21.84"),stringsAsFactors = FALSE) 

MeanTable$Yield <- as.numeric(MeanTable$Yield) 
lm(Yield~Age,data=MeanTable) 

@rawrが指摘しているように、変数が数値で始まる場合は簡単です。しかし、注意してください:Ageをカテゴリにするのではなく数値にすると、1-way ANOVAではなく回帰モデルに合うようになります。

関連する問題