首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UseMethod("rescale")中的错误:不适用于“c”类的对象(‘haven标签’,'vctrs_vctr',‘double’)中的“rescale”方法

UseMethod("rescale")中的错误:不适用于“c”类的对象(‘haven标签’,'vctrs_vctr',‘double’)中的“rescale”方法
EN

Stack Overflow用户
提问于 2021-04-30 12:20:45
回答 3查看 4.3K关注 0票数 4

我得到了以下错误:

UseMethod("rescale")中的错误:没有适用于“c(‘haven_标签’,'vctrs_vctr',‘double’)类对象的”rescale“方法

下面是我的情节代码:

ggplot(data_q_agg3, aes(x = 'qmrcms', y = 'count', fill = 'qbncap')) + geom_col(position = "dodge")

data_q_agg3是通过这样创建的(参见图):

代码语言:javascript
复制
data_q_agg3 <- group_by(na.omit(data_jointest), qbncap, qmrcms) %>%
  summarise(count=n())

data_jointest是通过这样做创建的(只是将两个数据帧相加在一起):

代码语言:javascript
复制
data_jointest <- rbind(data_q_clean2, data_q_clean4, deparse.level = 0)

最后,当我试图生成这个情节时,我会得到以下消息/错误:

代码语言:javascript
复制
Don't know how to automatically pick scale for object of type haven_labelled/vctrs_vctr/double. Defaulting to continuous.

Don't know how to automatically pick scale for object of type haven_labelled/vctrs_vctr/double. Defaulting to continuous.

Error in UseMethod("rescale") : 
  no applicable method for 'rescale' applied to an object of class "c('haven_labelled', 'vctrs_vctr', 'double')"`

帮助修复这个错误将是非常感谢的!

EN

回答 3

Stack Overflow用户

发布于 2021-08-06 19:49:34

我也经历过同样的问题并解决了它。此错误是由创建不兼容类类型的haven包造成的。解决方案是将变量类从c('haven_labelled', 'vctrs_vctr', 'double')更改为factornumeric,例如:

代码语言:javascript
复制
data_q_agg3$qbncap <- as.numeric(data_q_agg3$qbncap)

或作为因素:

代码语言:javascript
复制
data_q_agg3$qbncap <- as.factor(data_q_agg3$qbncap)

如果您不确定哪个变量是有问题的,可以使用以下方法同时查看每个变量的类:

代码语言:javascript
复制
sapply(data_q_agg3, class)

例如,应用于mtcar数据集:

代码语言:javascript
复制
sapply(mtcars, class)
      mpg       cyl      disp        hp      drat        wt      qsec        vs
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" 
        am      gear      carb 
"numeric" "numeric" "numeric" 
票数 1
EN

Stack Overflow用户

发布于 2021-06-14 12:19:45

不容易复制..。但我认为您应该首先检查df是否缺少值(类似于: df!is.na(df$n) )。

票数 0
EN

Stack Overflow用户

发布于 2022-05-18 16:56:33

我遇到了同样的错误..。我们只需要删除''

代码语言:javascript
复制
aes(x = qmrcms, y = count, fill = qbncap) 

在我删除''之后,错误就消失了,并且成功地创建了绘图。

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

https://stackoverflow.com/questions/67333840

复制
相关文章

相似问题

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