我已经用头撞了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
复制相似问题