R Ggplot不重新排序变量;警告消息需要估计方法
我用R Ggplot不重新排序变量;警告消息需要估计方法,r,ggplot2,R,Ggplot2,我用env_var(x)和env_y(y)作为独立值创建了一个简单的数据库。打印时,ggplot自动按字母顺序重新组织变量。我试图通过env_y值对env_var重新排序,但代码似乎试图创建统计数据(平均值),以便按照以下错误消息所示重新排序: 平均值。默认值(X[[i]],…):参数不是数字或逻辑参数:返回NA 我不需要得到平均值,这是一个非常简单的数据集,其中一个env_y值对应一个env_var变量。我在另一篇文章中读到,你应该自己组织数据,而不是像我之前做的那样使用aes。我按我希望的顺
env_var(x)
和env_y(y)
作为独立值创建了一个简单的数据库。打印时,ggplot自动按字母顺序重新组织变量。我试图通过env_y
值对env_var
重新排序,但代码似乎试图创建统计数据(平均值),以便按照以下错误消息所示重新排序:
平均值。默认值(X[[i]],…):参数不是数字或逻辑参数:返回NA
我不需要得到平均值,这是一个非常简单的数据集,其中一个env_y
值对应一个env_var
变量。我在另一篇文章中读到,你应该自己组织数据,而不是像我之前做的那样使用aes。我按我希望的顺序输入变量。我还确保将env_y
设置为数字,如前一篇文章所示。我试着使用forcats
,但这个解决方案似乎也包括估算平均值。是否有参数可以在不执行任何统计的情况下按原始值重新排序
*注意:我尝试了geom_point()
和geom_point(stat=“identity”)
参数,以防出现问题
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
env_var如果要按定义顺序绘制点,必须手动设置因子级别
env_var <- factor(env_var, levels = env_var)
并查看积分顺序。谢谢您的解决方案!有几件事我做错了
首先,我在创建数字向量时使用了“”,因此R即使在使用as.numeric()参数时也无法将环境识别为数字
其次,似乎要对数据集进行重新排序,我必须将排序存储在数据框中,如下所示:
env_model$env_var <- with(env_model, reorder(env_var,-env_y))
#or
env_model <- env_model[order(env_model$env_y, decreasing=T),]
env_model$env_var您必须先执行env_y,然后再将其放入data.frame中,检查类(env_var);类别(环境)
env_var <- factor(env_var)
env_var <- factor(env_var, levels = stringr::str_sort(env_var, numeric = TRUE))
env_model$env_var <- with(env_model, reorder(env_var,-env_y))
#or
env_model <- env_model[order(env_model$env_y, decreasing=T),]