R语言 | 宽数据变成一列,保留对应的行名和列名

对应稀疏矩阵 转为 宽数据框,见

  • 数据格式转换 | 稀疏矩阵3列还原为原始矩阵/数据框,自定义函数 df3toMatrix()

目的:比如查看鸢尾花整体的指标分布,4个指标分开,画到一个图中。每个品种画一个图。

1.数据整理:宽变长 手工版

dat0=iris
dat=unlist(dat0[,1:4]) |> as.data.frame()
colnames(dat)="val"
dim(dat) #600 1dat$obs= rep( rownames(dat0), times=ncol(dat0[,1:4]) )
dat$variation= rep( colnames(dat0[,1:4]), each=nrow(dat0[,1:4]) )
dat$Species= rep( dat0$Species, times=ncol(dat0[,1:4]) )
dim(dat) # 600   4
head(dat)
#                        val obs    variation Species
#Sepal.Length1 5.1   1 Sepal.Length  setosa
#Sepal.Length2 4.9   2 Sepal.Length  setosa

2.画图

colorset.types=ggsci::pal_npg()(5)[c(1,2,4,5)]
scales::show_col(colorset.types)
library(ggplot2)
ggplot(dat, aes(val, fill=variation))+geom_density(linewidth=1, alpha=0.5)+facet_grid(Species~., scale="free_y")+theme_bw(base_size = 14)+scale_fill_manual("Species", values = colorset.types, #breaks = my.breaks, labels=my.labels)+#scale_x_discrete(breaks = my.breaks, labels = my.labels) +labs(x="Length")

在这里插入图片描述

3. 原理

原理1:rep() 重复的方式,整体重复times=,每个元素分别重复 each=

rep(c("a", "b"), times=2) #"a" "b" "a" "b"
rep(c("a", "b"), each=2) #"a" "a" "b" "b"

原理2: 对数据框做 unlist() 默认是按列展开。
数学中矩阵是列向量。

> head(iris[1:2, 1:4])Sepal.Length Sepal.Width Petal.Length Petal.Width
1          5.1         3.5          1.4         0.2
2          4.9         3.0          1.4         0.2
> unlist(iris[1:2, 1:4])
Sepal.Length1 Sepal.Length2  Sepal.Width1  Sepal.Width2 Petal.Length1 Petal.Length2  Petal.Width1  Petal.Width2 5.1           4.9           3.5           3.0           1.4           1.4           0.2           0.2 

End.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/474636.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java——多线程

🏡个人主页:謬熙,欢迎各位大佬到访❤️❤️❤️~ 👲个人简介:本人编程小白,正在学习互联网开发求职知识…… 如果您觉得本文对您有帮助的话,记得点赞👍、收藏⭐️、评论&#x1f4ac…

HCIP --OSI七层参考模型回顾、TCP/UDP协议复习

目录 一、OSI 二、重要的三个协议报头格式 名词注解 MTU 封装 解封装 PDU ARP DNS TCP/IP与OSI的区别 三、数据包转发过程 四、获取目标ip地址方式 五、获取目标mac地址方式 六、交换机的工作原理 七、TCP/UDP TCP(Transmission Control Protocol&a…

基于Java Springboot甘肃旅游管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…

基于YOLOv8深度学习的独居老人情感状态监护系统(PyQt5界面+数据集+训练代码)

本研究提出了一种创新的独居老人情感状态监护系统,基于YOLOV8深度学习模型,旨在通过对老年人面部表情的实时监测与分析,来精准识别其情感变化,从而提高独居老人的生活质量,确保其心理健康。本系统通过整合先进的YOLOV8…

博客文章怎么设计分类与标签

首发地址(欢迎大家访问):博客文章怎么设计分类与标签 新网站基本上算是迁移完了,迁移之后在写文章的过程中,发现个人的文章分类和标签做的太混乱了,分类做的像标签,标签也不是特别的丰富&#x…

1+X应急响应(网络)网络流量分析技术:

网络流量分析技术: 全流量分析: Wireshark常用功能: Wireshark界面: Wireshark常用的使用方法: 全流量分析-分析web攻击: 全流量分析-分析DNS攻击: 全流量分析-分析病毒: 全流量分析…

LLM评测指标与评测方法

文章目录 常见评测指标语言建模任务相关评测指标分类任务相关评测指标条件文本生成任务相关评测指标问答任务相关评测指标执行类任务相关评测指标偏好排序任务相关评测指标随着大模型技术研究的快速发展,学术界和工业界相继发布了众多大语言模型。这些模型有的展现出强大的通用…

面向服务的软件工程——巨详细讲解商务流程建模符号 (BPMN),一篇章带你入门BPMN!!!(week1)

文章目录 一、前言二、重点概念三、BPMN元素讲解流对象1.活动任务(Task)子流程(sub-process)多实例活动连接对象序列流消息流关联泳道Artifacts数据对象组(Group)事件(Events)启动事件中间事件结束事件边界事件边界事件1边界事件2小疑问?网关参考文献:一、前言 在我们…

机器翻译-基础与模型

一、机器翻译发展历程 基于规则的-->基于实例的-->基于统计方法的-->基于神经网络的 传统统计机器翻译把词序列看作离散空间里的由多个特征函数描述的点,类似 于 n-gram 语言模型,这类模型对数据稀疏问题非常敏感。神经机器翻译把文字序列表示…

thinkphp6模板调用URL方法生成的链接异常

var uul params.url ;console.log(params.url);console.log("{:Url(UserLog/index)}");console.log("{:Url("uul")}"); 生成的链接地址 UserLog/index /jjg/index.php/Home/UserLog/index.html /jjg/index.php/Home/Index/UserLog/index.html…

基于Java Springboot网上花卉购物系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…

WQ9101 WIFI6模组移植实操

物奇WQ9101是集成 Wi-Fi和蓝牙子系统的双模芯片。支持 802.11a/b/g/n/ac/ax协议、2.4G5G双频并发的 Wi-Fi子系统,以及支持Bluetooth 5.3协议的蓝牙子系统。主要应用于 电视、 平板电视、 平板PC、手机智能音箱等 、手机智能音箱等 、手机智能音箱等领域 。 一、平台…

领海基点的重要性-以黄岩岛(民主礁)的领海及专属经济区时空构建为例

目录 前言 一、Turf.js缓冲区绘制 1、缓冲区分析介绍 2、缓冲区参数 3、Mask多边形空洞 4、Mask参数 二、领海基点、领海的WebGIS展示 1、领海基点的绘制 2、领海面的绘制 三、毗邻区和专属经济区绘制 1、毗邻区的绘制 2、专属经济区的绘制 四、总结 前言 在上一篇的…

【Pythonr入门第二讲】你好,世界

"Hello, World!" 是一种传统的编程入门示例,通常是程序员学习一门新编程语言时编写的第一个程序。这个程序的目标非常简单:在屏幕上输出 "Hello, World!" 这个字符串。尽管它非常简单,但具有重要的象征意义和实际价值。 …

25.UE5时间膨胀,慢动作,切换地图,刷BOSS

2-27 时间膨胀、慢动作、切换地图、刷BOSS_哔哩哔哩_bilibili 目录 1.刷新BOSS逻辑 2.时间膨胀实现慢动作 3.胜利画面,下一关 3.1胜利画面UI 3.2第一关、第二关游戏模式 3.3下一关按钮事件的绑定 1.刷新BOSS逻辑 实现当场上的怪物都死亡后,进行刷…

探索Python PDF处理的奥秘:pdfrw库揭秘

文章目录 探索Python PDF处理的奥秘:pdfrw库揭秘1. 背景:为何选择pdfrw?2. pdfrw是什么?3. 如何安装pdfrw?4. 五个简单的库函数使用方法4.1 读取PDF信息4.2 修改PDF元数据4.3 旋转PDF页面4.4 提取PDF中的图片4.5 合并P…

游戏引擎学习第19天

介绍 这段内容描述了开发者在进行游戏开发时,对于音频同步和平台层的理解和调整的过程。以下是更详细的复述: 开发者表达了他希望今天继续进行的工作内容。他提到,昨天他讲解了一些关于音频的内容,今天他想稍微深入讲解一下他正…

【初阶数据结构与算法】线性表之栈和队列的定义与实现(含源码和有效的括号练习)

文章目录 一、栈的概念与结构1.栈的概念与操作2.栈的底层结构选型 二、栈的实现1.栈结构的定义2. 栈的初始化和销毁栈的初始化栈的销毁 3.栈的扩容与入栈栈的扩容入栈 4.判断栈是否为空和出栈判断栈是否为空出栈 5.取栈顶元素和获取栈中有效元素个数取栈顶元素获取栈中有效元素…

详细分析ipvsadm负载均衡的命令

目录 前言1. 基本知识2. 命令参数3. 拓展 前言 LVS四层负载均衡架构详解Lvs推荐阅读:添加链接描述 1. 基本知识 ipvsadm 是用于管理和配置 Linux 服务器上 IP Virtual Server (IPVS) 的工具,是 Linux 提供的一个负载均衡模块,支持多种负载…

小程序-基于java+SpringBoot+Vue的小区服务管理系统设计与实现

项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…