質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

0回答

2927閲覧

分類木分析で”NAs introduced by coercion” エラー発生

kotoraemon

総合スコア21

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2019/04/10 19:51

Rで分類木分析をしていたのですが、tree()で、 ”NAs introduced by coercion” エラーが発生してしまいます。

verclというデータセットに対して、"DH"、"SL"、"NO"の三種類に分かれている"class"という項目について、三項分類しようとしたものが、t1。

"DH"のとき"u"、"SL","NO"のとき"h"となるclass2という項目を新たに加えたデータセットvercolに対して、"u"と"h"の二項で分類しようとしたものがt2。

t1はうまく分類木が描けたのですが、t2は上記のエラーが出て動きません。
class2を、DHのとき0、SL,NOのとき1となるように作ると動くのですが、分類木ではなく回帰木となってしまい、その後の混合行列等の計算に差しさわりが出るため、u, hで分類木として動かしたいと思っています。

R

1library(tree) 2vercl =read.table("vertebralcolumn.dat",header = TRUE) 3vercol =mutate(vercl, class2 = if_else(condition = class=="NO", 4 true = "h", false = "u")) 5 6set.seed(123) 7n <- nrow(vercol) 8n1 <- round(n * 2/3) 9n2 <- n - n1 10permutation <- sample(1:n,n) 11 12training <- sort(permutation[1:n1])  13vercol_train <- vercol[training, ] #training set 14vercol_test <- vercol[-training, ] #test set 15 16 17f2 <- as.formula(paste("class2 ~ ", paste(names(vercol)[1:6], 18 collapse = "+"), collapse = NULL)) 19t2<- tree(f2, data = vercol_train, 20 control = tree.control(nobs = 207, minsize = 2, mindev = 0)) 21t2 22plot(t2) 23text(t2) 24 25 26# class2~ でなく class ~ ならば問題なく動く 27f1 <- as.formula(paste("class ~ ", paste(names(vercol)[1:6], 28 collapse = "+"), collapse = NULL)) 29t1<- tree(f1, data = vercol_train) 30t1 31 32

データは下の通りで、310obsあります。

head(vercl)

pelvInc pelvTilt lumbLord SacrSl pelvRad degrS class
1 63.03 22.55 39.61 40.48 98.67 -0.25 DH
2 39.06 10.06 25.02 29.00 114.41 4.56 DH
3 68.83 22.22 50.09 46.61 105.99 -3.53 DH
4 69.30 24.65 44.31 44.64 101.87 11.21 DH
5 49.71 9.65 28.32 40.06 108.17 7.92 DH
6 40.25 13.92 25.12 26.33 130.33 2.23 DH
(class にはDHのほか、SL、NOがあります)

head(vercol)

pelvInc pelvTilt lumbLord SacrSl pelvRad degrS class class2
1 63.03 22.55 39.61 40.48 98.67 -0.25 DH u
2 39.06 10.06 25.02 29.00 114.41 4.56 DH u
3 68.83 22.22 50.09 46.61 105.99 -3.53 DH u
4 69.30 24.65 44.31 44.64 101.87 11.21 DH u
5 49.71 9.65 28.32 40.06 108.17 7.92 DH u
6 40.25 13.92 25.12 26.33 130.33 2.23 DH u
(class2は、DHのときu、SL,NOのときhとなるように作りました。二項比較がしたいため)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問