首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将R数据按in图中的单个列排序

如何将R数据按in图中的单个列排序
EN

Stack Overflow用户
提问于 2020-02-07 06:13:36
回答 1查看 55关注 0票数 0

我有一个学生的数据,其中包括他们独特的身份证,名字和考试成绩。

我试图在GGPlot中绘制学生ID及其考试成绩,并按学生id排序(图中应以学生姓名为x轴,考试成绩为y,并应按id的升序排列)。

另外要注意的是,有些考试成绩是重复的(即两个学生在一次考试中可以得到相同的分数)。

我已经知道如何绘制它了--我只是尝试按单个ID列按升序排序。我该怎么做呢?谢谢!

示例:

代码语言:javascript
运行
复制
ID  name test1score test2score
1   ted     92         94
2   jan     95         89
3   rob     92         96
4   jenny   92         94
5   risa    83         94
6   blake   80         90
7   court   77         89
8   aaron   98         83
9   austin  83         84
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-07 06:22:14

若要根据学生ID对条形图进行排序,并以正确的顺序排列学生姓名,您可以首先根据“学生ID”重新排列数据,然后修复变量"name“的因子级别。

有多个wyas来完成它,在这里,我使用dplyr包进行操作。(注意:我使用了来自pivot_longer包的tidyr函数将您的数据修改为更适合ggplot2的更长格式)

代码语言:javascript
运行
复制
library(tidyverse)
df %>% arrange(ID) %>%
  mutate(name = factor(name, unique(name))) %>%
  pivot_longer(.,-c(ID,name), names_to = "var", values_to = "val") 

# A tibble: 18 x 4
      ID name   var          val
   <int> <fct>  <chr>      <int>
 1     1 ted    test1score    92
 2     1 ted    test2score    94
 3     2 jan    test1score    95
 4     2 jan    test2score    89
 5     3 rob    test1score    92
 6     3 rob    test2score    96
 7     4 jenny  test1score    92
 8     4 jenny  test2score    94
 9     5 risa   test1score    83
10     5 risa   test2score    94
11     6 blake  test1score    80
12     6 blake  test2score    90
13     7 court  test1score    77
14     7 court  test2score    89
15     8 aaron  test1score    98
16     8 aaron  test2score    83
17     9 austin test1score    83
18     9 austin test2score    84

然后,将所有内容传递给ggplot2,给出如下的情节:

代码语言:javascript
运行
复制
library(tidyverse)
df %>% arrange(ID) %>%
  mutate(name = factor(name, unique(name))) %>%
  pivot_longer(.,-c(ID,name), names_to = "var", values_to = "val") %>%
  ggplot(aes(x = name, y = val, fill = var))+
  geom_col(position = position_dodge())

它能回答你的问题吗?

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

https://stackoverflow.com/questions/60108031

复制
相关文章

相似问题

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