R语言 tidyverse系列学习笔记(系列4)PlantGrowth - percentage table

本篇学习数据分析, Excel 表格制作

Task: 创建一个 行 百分比 表格

在这里插入图片描述

row percentage table

先看一下 PlantGrowth 数据集

library(dplyr)

data("PlantGrowth")
view(PlantGrowth)

在这里插入图片描述
给数据集新加一列 weight_cat ,并用 case_when 自定义名称

PG = PlantGrowth |> 
  mutate(weight_cat = case_when(
    weight <= 4.5 ~ "light",
    weight > 4.5 & weight <= 5.5 ~ "medium",
    weight > 5.5 ~ "heavy"
      )
         )

view(PG)

在这里插入图片描述

统计 group 和 weight_cat 的次数

table(PG$group, PG$weight_cat)

table_count1 = table(PG$group,PG$weight_cat)
view(table_count1)

在这里插入图片描述

在这里插入图片描述

addmargins

addmargins(table_count1, 1) # 在最后一行加
addmargins(table_count1, 2) # 在最后一列加
addmargins(table_count1) # 在最后一行和最后一列都加

在这里插入图片描述

创建 行 百分比 表格

即每行加起来为100%,但每列加起来不一定是100%

# row percentage table
table_count2 = addmargins(table_count1, 1)
table_count2

在这里插入图片描述

proportion 比例
prop.table(x,1) 按计算百分比
prop.table(x,2) 按计算百分比

在这里插入图片描述
*100 转换成百分制

最后一列加sum

table_count3 = addmargins(table_count2,2)
table_count3

table_per2 = addmargins(table_per1,2)
table_per2

在这里插入图片描述
在这里插入图片描述

可以看到每行 sum 都是100

paste0

在这里插入图片描述
如果直接把 countpercentage 拼接起来,结果有点奇怪,可以根据需求自定义修改
在这里插入图片描述

paste0(table_count3, "(", round(table_per2), "%)")

在这里插入图片描述
先用round去掉了小数点,再把百分比数值前边加上,再把百分比数值右边加上%

matrix

matrix(paste0(table_count3, "(", round(table_per2), "%)"),dim(table_count3))

将输出变成矩阵的形式,可以指定输出的 shape,用dimention来指定shape更方便

在这里插入图片描述

数据有了,我们还缺少行名和列名,下面介绍一个快捷方式

dimnames

先看例子

dimnames(table_count3)

先输出行名,在输出列名

在这里插入图片描述

加到我们需要的表格上

matrix(paste0(table_count3, "(", round(table_per2), "%)"),dim(table_count3),dimnames = dimnames(table_count3))

在这里插入图片描述
以上,我们就得到了需要的表格,现在将最后一条代码规整化并命名新的表名

tab_combine = matrix(paste0(table_count3, "(", round(table_per2), "%)"),
                     dim(table_count3),
                     dimnames = dimnames(table_count3)
                     )

完整代码

library(dplyr)

data("PlantGrowth")
view(PlantGrowth)

PG = PlantGrowth |> 
  mutate(weight_cat = case_when(
    weight <= 4.5 ~ "light",
    weight > 4.5 & weight <= 5.5 ~ "medium",
    weight > 5.5 ~ "heavy"
      )
         )

view(PG)


table_count1 = table(PG$group,PG$weight_cat)
table_count2 = addmargins(table_count1, 1)

table_per1 = prop.table(table_count2,1)*100
table_count3 = addmargins(table_count2,2)
table_per2 = addmargins(table_per1,2)

tab_combine = matrix(paste0(table_count3, "(", round(table_per2), "%)"),
                     dim(table_count3),
                     dimnames = dimnames(table_count3)
                     )

拓展任务:column percentage table & overall percentage table

column percentage table

tab_1 = table(PG$group,PG$weight_cat)
tab_2 = addmargins(tab_1,2)
tab_3 = addmargins(tab_2,1)

tab_per1 = prop.table(tab_2,2)*100
tab_per2 = addmargins(tab_per1,1)

tab_colmn_combine = matrix(paste0(tab_3, "(", round(tab_per2), "%)"),
                           dim(tab_3),
                           dimnames = dimnames(tab_3)
                           )

tab_colmn_combine

在这里插入图片描述

overall percentage table

tab_1 = table(PG$group,PG$weight_cat)
tab_2 = addmargins(tab_1)


tab_per1 = prop.table(tab_1)*100
tab_per2 = addmargins(tab_per1)

tab_colmn_combine = matrix(paste0(tab_2, "(", round(tab_per2), "%)"),
                           dim(tab_2),
                           dimnames = dimnames(tab_2)
)

tab_colmn_combine

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习pytorch实战五:基于ResNet34迁移学习的方法图像分类篇自建花数据集图像分类(5类)超详细代码

1.数据集简介 2.模型相关知识 3.split_data.py——训练集与测试集划分 4.model.py——定义ResNet34网络模型 5.train.py——加载数据集并训练&#xff0c;训练集计算损失值loss&#xff0c;测试集计算accuracy&#xff0c;保存训练好的网络参数 6.predict.py——利用训练好的网…

(三)Kafka 生产者

文章目录 1. Kafka 发送消息的主要步骤2.创建 Kafka 生产者3.发送消息到 Kafka&#xff08;1&#xff09;发送并忘记&#xff08;2&#xff09;同步发送&#xff08;3&#xff09;异步发送 4.生产者配置&#xff08;1&#xff09;client.id&#xff08;2&#xff09;ack&#x…

Python基础(2)——Python解释器

Python基础&#xff08;2&#xff09;——Python解释器 文章目录 Python基础&#xff08;2&#xff09;——Python解释器目标一. 解释器的作用二. 下载Python解释器三. 安装Python解释器总结 目标 解释器的作用下载Python解释器安装Python解释器 一. 解释器的作用 Python解释…

对于ChatGPT,马化腾、马斯克等科技大佬竟然这么说!

ChatGPT一夜爆火之后&#xff0c;国内几乎是各大互联网公司都在摩拳擦掌&#xff0c;跃跃欲试&#xff0c;从百度的文心一言&#xff0c;到阿里的通义千问&#xff0c;还有360的智脑&#xff0c;讯飞的星火&#xff0c;语言大模型如雨后春笋一般涌出&#xff0c;犹如2014年新能…

Android 逆向安全行业前景如何?

前言 Android 逆向是指对已经发布的 Android 应用进行分析和研究&#xff0c;通过逆向工程&#xff0c;将 Android 应用中的底层实现原理、业务逻辑、源代码以及恶意行为等等信息进行破解和掌握。逆向工程可以让研究者深入了解 Android 应用的实现细节&#xff0c;从而识别和修…

麒麟V10服务器 安装samba 软件,并且实现远程连接(压缩包形式)

目录 1 安装包2 实现3 如何查看安装的sambd 的版本4 使用 1 安装包 百度网盘 链接: https://pan.baidu.com/s/1l6HDAGE4_Itj-cp7XtpUNg 提取码: 100w 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦2 实现 以下是在Linux系统中使用压缩包方式安装Samba服务的步…

走向实用的AI编解码

基于AI的端到端数据压缩方法受到越来越多的关注&#xff0c;研究对象已经包括图像、视频、点云、文本、语音和基因组等&#xff0c;其中AI图像压缩的研究最为活跃。图像编解码的研究和应用历史悠久&#xff0c;AI方法要达到实用&#xff0c;需要解决诸多问题才能取得相比于传统…

Gradle版本目录(Version Catalog)

Gradle版本目录(Version Catalog) “版本目录是一份依赖项列表&#xff0c;以依赖坐标表示&#xff0c;用户在构建脚本中声明依赖项时可以从中选择。” 我们可以使用版本目录将所有依赖项声明及其版本号保存在单个位置。这样&#xff0c;我们可以轻松地在模块和项目之间共享依…

串口协议说明

文章目录 关系波特率概念波特率相对误差UART误差保证 协议常见的串行接口协议之间的比较USB 转串口PL2303USB 转串口CP2102USB转232终端电阻 串口电平TTL电平485电平 帧奇偶校验 关系 两个半双工&#xff0c;一发一收&#xff0c;就是Uart 在一根线的基础上&#xff0c;多加一…

iPhone手机UDID获取方法

UDID&#xff1a;iOS设备的唯一识别码&#xff0c;每台iOS设备都有一个独一无二的编码&#xff0c;这个编码&#xff0c;就称为识别码&#xff0c;也叫做UDID&#xff08;Unique Device Identifier&#xff09; 一、通过Xcode查看 手机连接电脑打开Xcode&#xff0c;选择wind…

初探 transformer

大部分QA的问题都可以使用seq2seq来实现。或者说大多数的NLP问题都可以使用seq2seq模型来解决。 但是呢最好的办法还是对具体的问题作出特定的模型训练。 概述 Transformer就是一种seq2seq模型。 我们先看一下seq2seq这个模型的大体框架(其实就是一个编码器和一个解码器)&a…

Vue中如何进行表单图片裁剪与预览

Vue中如何进行表单图片裁剪与预览 在前端开发中&#xff0c;表单提交是一个常见的操作。有时候&#xff0c;我们需要上传图片&#xff0c;但是上传的图片可能会非常大&#xff0c;这会增加服务器的负担&#xff0c;同时也会降低用户的体验。因此&#xff0c;我们通常需要对上传…

选择合适的采购系统,实现企业数字化转型

随着数字化技术的飞速发展&#xff0c;企业数字化转型已经成为了当今市场的必然趋势。而采购系统作为企业数字化转型的重要组成部分&#xff0c;选择合适的采购系统对于企业来说至关重要。本文将围绕选择合适的采购系统&#xff0c;实现企业数字化转型展开讨论。 一、企业数字化…

OpenCV项目开发实战-- 的单应性(Homography)实例Python/C++代码实现

文末附基于Python和C++两种方式实现的测试代码下载链接 什么是单应性(Homography)? 考虑图 1 中所示的平面(书的顶部)的两个图像。红点表示两个图像中的相同物理点。在计算机视觉术语中,我们称这些为对应点。图 1. 显示了四种不同颜色的四个对应点——红色、绿色、黄色和…

YUM源安装,在线YUM,本地YUM

YUM源 一、定义 YUM&#xff08;全称为 Yellow dog Updater, Modified&#xff09;是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器。基于RPM包管理&#xff0c;能够从指定的服务器自动下载RPM包并且安装&#xff0c;**可以自动处理依赖性关系&…

【八大排序(五)】快排进阶篇-挖坑法+前后指针法

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:八大排序专栏⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习排序知识   &#x1f51d;&#x1f51d; 快排进阶篇 1. 前情回顾2. 思路回顾3. 单…

java方法

文章目录 一、java方法总结 一、java方法 在前面几个章节中我们经常使用到 System.out.println()&#xff0c;那么它是什么呢&#xff1f; println() 是一个方法。 System 是系统类。 out 是标准输出对象。这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 pr…

docker部署prometheus+grafana视图监控

效果 一、grafana可视化平台部署 docker run -d \--namegrafana \--restartalways \-p 3000:3000 \grafana/grafanagrafana我也是部署在170.110服务器上&#xff0c;192.168.170.110:3000访问grafana 默认账号密码都是admin 二、部署exportor采集信息 针对各类数据库平台系统…

ch8_1_CPU的结构和功能

1. cpu的结构 1.1CPU 的功能 控制器的功能 控制器的功能具体作用取指令指令控制分析指令操作控制执行指令&#xff0c; 发出各种操作命令控制程序输入与结果的输出时间控制总线管理处理中断处理异常情况和特殊请求数据加工 运算器的功能 实现算术运算 和 逻辑运算&#x…

我的256创作纪念日

机缘 挺开心的&#xff0c;想到自己未曾写过一些非技术类的博客&#xff0c;恰巧今天刚好也是我的256创作纪念日&#xff0c;就乘着这个日子&#xff0c;写一点自己过去的收获、内心的想法和对未来的展望吧。 本人不才&#xff0c;只就读于一所民办本科之中&#xff0c;我挺不想…