4

私はrpart数日間頭を悩ませてきました(私が持っているこのデータセットの分類ツリーを作成しようとしています)、そしてこの時点でライフラインに尋ねる時が来たと思います:-)それはばかげたことだと確信しています私は見ていませんが、これが私がやっていることです:

EuropeWater <- read.csv(file=paste("/Users/artessaniccola/Documents/",
                       "Magic Briefcase/CityTypology/Europe_water.csv",sep=""))
library(rpart)
attach(EuropeWater)
names(EuropeWater)
[1] "City"          "waterpercapita_m3" "water_class"       "population"       
[5] "GDPpercapita"  "area_km2"          "populationdensity" "climate"            
EuropeWater$water_class <- factor(EuropeWater$water_class, levels=1:3, 
                                  labels=c("Low", "Medium", "High"))
EuropeWater$climate <- factor(EuropeWater$climate, levels=2:4, 
                              labels=c("Arid", "Warm temperate", "Snow"))
EuropeWater_tree <- rpart(EuropeWater$water_class ~ 
               population+GDPpercapita + area_km2 + populationdensity + 
               EuropeWater$climate, 
               data=EuropeWater, method=class)   
Error in as.character(x) : 
          cannot coerce type 'builtin' to vector of type 'character'

私の人生では、エラーが何であるかを理解できません。

4

2 に答える 2

19

これは機能しますか?

EuropeWater_tree <- rpart(EuropeWater$water_class ~ 
 population+GDPpercapita + area_km2 + populationdensity + EuropeWater$climate, 
 data=EuropeWater, method="class")

メソッドタイプを引用する必要があると思います。

classRの代わりに使用"class"すると、文字自体に変換しようとします。

as.character(class)
Error in as.character(class) : 
    cannot coerce type 'builtin' to vector of type 'character'

原因classはタイプの関数ですbuildin:

typeof(class)
[1] "builtin"
于 2010-02-25T20:01:03.247 に答える
3

式を修正することから始めEuropeWaterます。すでにdata=引数を指定しているため、冗長を削除します。

res <- rpart(water_class ~ population + GDPpercapita + area_km2 + 
                           populationdensity + climate, 
             data=EuropeWater, method="class")

また、すべての列がdata.frame適切なタイプであることを確認してください。csvファイルから読み取ったデータの一部が誤って読み取られた可能性がありますか?簡単にsummary(EuropeWater)これを明らかにするかもしれません。

于 2010-02-25T19:46:15.993 に答える