首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >rpart "Error in as.character(x):cannot coerce type 'builtin‘to type 'character’“消息是什么意思?

rpart "Error in as.character(x):cannot coerce type 'builtin‘to type 'character’“消息是什么意思?
EN

Stack Overflow用户
提问于 2010-02-26 03:37:04
回答 2查看 25.7K关注 0票数 4

我已经用头撞了rpart几天了(试图为我拥有的这个数据集制作分类树),我认为现在是时候询问生命线了:-)我确信这是我没有看到的愚蠢的事情,但这是我一直在做的:

代码语言:javascript
运行
复制
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'

对于我的生活,我无法弄清楚这个错误是关于什么的。

EN

回答 2

Stack Overflow用户

发布于 2010-02-26 04:01:03

这行得通吗?

代码语言:javascript
运行
复制
EuropeWater_tree <- rpart(EuropeWater$water_class ~ 
 population+GDPpercapita + area_km2 + populationdensity + EuropeWater$climate, 
 data=EuropeWater, method="class")

我认为你应该引用方法类型。

当您使用class而不是"class"时,R将尝试转换为字符本身:

代码语言:javascript
运行
复制
as.character(class)
Error in as.character(class) : 
    cannot coerce type 'builtin' to vector of type 'character'

原因class是类型为buildin的函数

代码语言:javascript
运行
复制
typeof(class)
[1] "builtin"
票数 19
EN

Stack Overflow用户

发布于 2010-02-26 03:46:16

我将从修正公式开始:删除冗余的EuropeWater,因为您已经提供了data=参数:

代码语言:javascript
运行
复制
res <- rpart(water_class ~ population + GDPpercapita + area_km2 + 
                           populationdensity + climate, 
             data=EuropeWater, method="class")

此外,还要确保data.frame的所有列都属于适当的类型。也许从csv文件中读取的某些数据被误读为一个因素?快速的summary(EuropeWater)可能会揭示这一点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2337018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档