首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不对变量重新排序;警告消息需要估计方法

不对变量重新排序;警告消息需要估计方法
EN

Stack Overflow用户
提问于 2020-02-26 20:13:05
回答 2查看 165关注 0票数 1

我创建了一个简单的数据库,使用env_var (x)env_y (y)作为我的独立值。绘图时,自动按字母顺序重新组织变量。我尝试按env_var值重新排序env_y,但似乎代码试图创建统计数据(平均值),以便重新排序,如以下错误消息所示:

In mean.default(X[[i]], ...) :argument is not numeric or logical: returning NA

我不需要获得方法,它是一个非常简单的数据集,其中有一个env_y值对应于一个env_var变量。我在另一篇文章中读到,你应该组织数据本身,而不是使用aes,这就是我之前所做的。我按要绘制的顺序输入变量。我还确保将env_y设置为数字,如上一篇文章所述。我试过使用forcats,但是这个解决方案似乎也涉及到估算方法。是否存在不执行任何统计数据而按原始值重新排序的参数?

注:我尝试了geom_point()geom_point(stat="identity")参数,以防这是问题所在。

代码语言:javascript
复制
env_var<-    c('bio6','bio15','bio18','bio12','bio5','bio1','bio17','bio19','bio9','bio7','bio8')

env_y<- c('43.4','25.2','12.1','3.7','2.8','2.7','2.7','2.3','1.8','1.7','1.7')

as.numeric(env_y)
as.factor(env_var)
env_model <- data.frame(env_var, env_y)

p <- ggplot(env_model, aes(x = reorder(env_var,env_y), y = env_y)) +
    geom_point()
p
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-26 20:35:44

如果您希望按您定义的顺序绘制点,则必须手动设置因子级别。

代码语言:javascript
复制
env_var <- factor(env_var, levels = env_var)

然后绘制它们,但是,就像用户@StupidWolfcomment中所说的,

您必须做env_y <- as.numeric(env_y),否则它仍然是一个字符。

只有这样才能创建data.frame。

代码语言:javascript
复制
env_y <- as.numeric(env_y)
env_model <- data.frame(env_var, env_y)

p <- ggplot(env_model, aes(x = env_var, y = env_y)) +
  geom_point()
p

尝试将因子env_var更改为

代码语言:javascript
复制
env_var <- factor(env_var)
env_var <- factor(env_var, levels = stringr::str_sort(env_var, numeric = TRUE))

看看要点的命令。

票数 1
EN

Stack Overflow用户

发布于 2020-02-27 20:02:57

谢谢你的解决方案!有几件事我做错了。

首先,我在创建数字向量时使用了“”,这样即使使用env_y ()参数,R也不会将as.numeric识别为数字。

第二,似乎要重新排序数据集,我必须将排序存储在数据帧中,如下所示:

代码语言:javascript
复制
env_model$env_var <- with(env_model, reorder(env_var,-env_y))
#or 
env_model <- env_model[order(env_model$env_y, decreasing=T),]

这对我起了作用。

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

https://stackoverflow.com/questions/60421842

复制
相关文章

相似问题

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