我已经用头撞了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'对于我的生活,我无法弄清楚这个错误是关于什么的。
发布于 2010-02-26 04:01:03
这行得通吗?
EuropeWater_tree <- rpart(EuropeWater$water_class ~ 
 population+GDPpercapita + area_km2 + populationdensity + EuropeWater$climate, 
 data=EuropeWater, method="class")我认为你应该引用方法类型。
当您使用class而不是"class"时,R将尝试转换为字符本身:
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-26 03:46:16
我将从修正公式开始:删除冗余的EuropeWater,因为您已经提供了data=参数:
res <- rpart(water_class ~ population + GDPpercapita + area_km2 + 
                           populationdensity + climate, 
             data=EuropeWater, method="class")此外,还要确保data.frame的所有列都属于适当的类型。也许从csv文件中读取的某些数据被误读为一个因素?快速的summary(EuropeWater)可能会揭示这一点。
https://stackoverflow.com/questions/2337018
复制相似问题