热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

R语言基础入门(1)宽表转长表

之前写了一系列绘图的文档来介绍如何通过ggplot2来绘图,但是对于初学者来说不够友好,因此这一系列将从最基础的一下东西开始写起,希望对大家有所帮助。在此之前请阅读以下2篇文档https://m

之前写了一系列绘图的文档来介绍如何通过ggplot2来绘图,但是对于初学者来说不够友好,因此这一系列将从最基础的一下东西开始写起,希望对大家有所帮助。在此之前请阅读以下2篇文档
https://mp.weixin.qq.com/s/QCSA06xePLJgJ8RyeATQxg
https://mp.weixin.qq.com/s/EwFO7V8o5eO-dTrhJzSh_w

R语言基础入门(1) 宽表转长表

通过上面2篇文档的学习,相应您已经了解了如何安装R包,设置路径及ggplot2的一些关键概念,下面就该读入自己的数据来进行可视化了;在画图之前我们还需要对数据进行格式处理,是否还记得在ggplot2可视化时需要给aes传入2个美学参数,一个作为X另一个为Y,但是我们通常手里边的数据有很多列,在R中将其定义为宽表,而ggplot函数需要的在R中我们定义为长表,因此第一步即:

宽表转长表

如下图所示

R语言基础入门(1) 宽表转长表

下面我们创建数据集来演示一下

df 
> df
          state male_fulltime male_other female_fulltime female_other
1         Maine         50329      18099           40054        13781
2 Massachusetts         66066      18574           53841        14981
3 New Hampshire         59962      20274           46178        15121
4       Vermont         50530      17709           42198        14422

宽表转长表

df2.long 
> df2.long
# A tibble: 16 x 4
   state         sex    work     income
   
 1 Maine         male   fulltime  50329
 2 Maine         male   other     18099
 3 Maine         female fulltime  40054
 4 Maine         female other     13781

可以看到通过pivot_longer( )函数很轻松完成了宽表转长表

  • pivot_longer()函数有三个主要的参数
  • cols,表示哪些列需要转换
  • names_to,表示cols选取的这些列的名字,构成了新的一列或多列;需要给定名称
  • values_to,表示cols选取的这些列的值,构成了新的一列,同样要给定名称

经过上面的格式转换我们整理好了数据,接下来进行一个简单的可视化

df2.long %>% ggplot(aes(sex,income,fill=state))+
  geom_boxplot()+theme_classic()
R语言基础入门(1) 宽表转长表

在某些时刻我们可能还需要进行长表转宽表,让我们通过下面的代码来学习

pivot_wider(df2.long, 
            names_from = c(sex,work), 
            values_from = income,
            names_sep = ".")
# A tibble: 4 x 5
  state         male.fulltime male.other female.fulltime female.other
  
1 Maine                 50329      18099           40054        13781
2 Massachusetts         66066      18574           53841        14981
3 New Hampshire         59962      20274           46178        15121
4 Vermont               50530      17709           42198        14422

经过本节我们初步了解了数据格式的转换,接下来的将继续介绍tidyverse中的其它数据过滤函数


推荐阅读
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • 在yaml文件中添加以下配置信息本人用activiti版本是6.0.0,是若依微服务版.目前问题是只要启动微服务控制台隔十秒查询一次activiti定时任务sql。activiti ... [详细]
  • SSL协议、TLS协议,使用哪一种更安全?
    在金融银行业,保护机密信息的安全至关重要。由于财务记录完全通过在线数据库维护,因此实施保护客户、银行和金融机构免受黑客攻击的安全功能比以往任何时候都更加重要。安全套接字层(SSL) ... [详细]
  • FroggerTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:32257Accepted:10396DescriptionFr ... [详细]
  • Python多线程的执行顺序及状态
    importthreadingimporttimeclassMyThread(threading.Thread):defrun(self): ... [详细]
  • 前端微服务二
    为了解决庞大的一整块后端服务带来的变更与扩展方面的限制,出现了微服务架构(Microservices):微服务是面向服务架构(SOA)的一种变体,把应用程序设计成一系列松耦合的细粒 ... [详细]
  • 开发笔记:(源码开放) React + webpack3 多页面应用 及 常见问题解答
    本文由编程笔记#小编为大家整理,主要介绍了(源码开放)React+webpack3多页面应用及常见问题解答相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 以下内容|尾部_quarkus实战之一:准备工作
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了quarkus实战之一:准备工作相关的知识,希望对你有一定的参考价值。欢迎访问我的GitHub ... [详细]
  • 本文分析和介绍了GLo ... [详细]
  • 系统osx10.11用的是brew下的php56brew下的nginx下了一个项目,在安装过程中提示缺少,intl和apc扩展,就用下面的语句下载了,也装上了,但php还是没有加载 ... [详细]
  • Mac下Flutter安装AndroidStudio配置
    补一个Mac下Flutter安装AndroidStudio配置(官网地址:https:flutter.devdocsget-startedinstallmacos)1.下载安装包; ... [详细]
  • 我理解ViewHolder的onBindViewHolder如何工作,但是我不清楚notifyItemRangeChanged(0,this.data.size())如何;适用于此示例以及它的确 ... [详细]
  • 使用pm2方便开启node集群模式
    使用pm2方便开启node集群模式 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 我创建了一个新的AWSSSO(使用内部IDP作为身份源,因此不使用ActiveDirectory)。我能够登录AWSCLI、AWSGUI,但 ... [详细]
author-avatar
o筱灵丹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有