表格转换,多行聚集成列,长列转换成多行
练
R ggplot2绘图常用一维数据列表的数据框,所以常用到多行聚为列这个功能。
减列数,创建一维:
常用包:reshape2,tidyr以及聚集了tidyr等包的tidyverse。
创建例子df<-data.frame(x=c("A","B","C"),"2010"=c(1,3,4),'2011'=c(3,5,2),check.names=FALSE)
reshap2::melt(数据框,id.var=索引列,variable.name=转换后列变量名的列名,value.name=转换后变量对应值的列名)
> df_melt<-reshape2::melt(df,id.var="x",variable.name="year",value.name="value")
tidyr::gather(数据框,转换后列变量名的列名,转换后变量对应值的列名,-索引列)
注:-索引列是指除索引列其他都聚合。
> df_gather<-tidyr::gather(df,year,value,-x)
上面俩函数运行结果相同:
如果要剩下的比较多,聚合的有些,那么还是指定比较好
jointcalling_GenotypeQC<-jointcalling_GenotypeQC %>%gather(key="Metrics",value="Concordance",Geonotype_Concordance,NonRef_sensitivity,NonRef_Concordance,Precision,Heterozygote_concordance)
加列数,加维
reshape2::dcast(数据框,行标签~列标签,value.var=列对应的值) 注:这里行标签指第一列自变量标签
reshape2::dcast(df_melt,x~year,value.var = "value")
tidyr::spread(数据框,待转的列标签,对应的值)
df_spread<-tidyr::spread(df_gather,year,value)
备注:tidyverse是Hadley创建的R包的集合。核心软件包是ggplot2,dplyr,tidyr,readr,purrr,tibble,stringr和forcats。其中readr用于读取数据,tidyr用于整理数据,dplyr用于数据转换,ggplot2用于数据可视化,purrr用于函数式编程。
本文来自博客园,作者:BioinformaticsMaster,转载请注明原文链接:https://www.cnblogs.com/koujiaodahan/p/15358337.html
posted on 2021-09-30 22:42 BioinformaticsMaster 阅读(79) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律