当前位置: 首页 > news >正文

【数据挖掘】练习2:数据管理2

课后作业2:数据管理2

一:上机实验2

# 编写函数stat,要求该函数同时计算均值,最大值,最小值,标准差,峰度和偏度。

install.packages("timeDate")

library(timeDate)

stat <- function(x) {

  result <- c(

    mean_value = mean(x),

    max_value = max(x),

    min_value = min(x),

    sd_value = sd(x),

    kurtosis_value = kurtosis(x),

    skewness_value = skewness(x)

  )

  return(result)

}

# 设置随机种子

set.seed(66)


# 生成自由度为2的t分布的100个随机数t

(t_values <- rt(100, df = 2))

# 通过函数stat计算t的均值,最大值,最小值,标准差,峰度和偏度。

(result <- stat(t_values))

二:思考与实验总结

1:如何通过数据管理得到实际情况中需要的数据集格式?

主要通过以下数据管理方面的操作手段,获得实际情况的数据集格式。

编号

操作概念

操作内容

1

变量重命名

修改数据库和列表的变量名,或修改矩阵的行名和列名

2

缺失值分析

识别包含缺失值的观测,判断数据中是否存在缺失值,删除含有缺失值的观测

3

数据排序

按照降序或升序排序数据,返回排序后的向量、向量中每个数值对应的秩、或排序数据所在向量中的索引

4

随机抽样

实现放回简单或不放回简单随机抽样,对数据进行随机分组

5

字符串处理

从文本型数据中抽取信息,为打印输出和生成报告重设文本的格式

6

文本分词

对文本进行合理的分割,便捷地获取关键信息

操作流程主要为:创建新变量——缺失值分析——函数构建与使用——字符串处理——控制流设置语句的执行顺序。

2:merge函数的自行实现

Merge函数的主要功能是:通过共同列或者行名合并数据框,或者执行其他合并操作。

Merge函数的语法主要为:

merge(x, y, by = intersect(names(x), names(y)),

      by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all,

      sort = TRUE, suffixes = c(".x",".y"), no.dups = TRUE,

      incomparables = NULL, ...)

其中,x和y参数表示要合并的数据框或对象;by、by.x和by.y指定合并的列;all、all.x和all.y是控制填充的逻辑值;sort决定结果是否按照公共列排序;suffixes标明后缀出处。

(1)当合并所用到的共同列在数据框中的列名称相同时

【1】构建数据框

名称 <- c('郭靖','黄蓉','华筝','梅超风','杨康','穆念慈')

性别 <- c('M','F','F','F','M','F')

亲属 <- c('郭啸天','黄药师','铁木真','陈玄风','完颜洪烈','杨铁心')

data <- data.frame(名称,性别,亲属,stringsAsFactors = F)

data

名称 <- c('郭靖','黄蓉','王重阳','梅超风','欧阳锋','一灯大师')

身份 <- c('侠之大者','女中诸葛','全真教掌门','黑风双煞','白驼山庄主','大理高僧')

武功 <- c('降龙十八掌',' 落英神剑掌','全真剑法','九阴白骨爪','蛤蟆功','一阳指')

pd <- data.frame(名称,身份,武功,stringsAsFactors = F)

pd

【2】按照默认方式合并,即有共同属性的列被合并(此处为名称)

merge(data, pd)

(2)当合并所用到的共同列在数据框中的列名称相同时

【1】构建数据框

#  merge()函数

名称 <- c('郭靖','黄蓉','华筝','梅超风','杨康','穆念慈')

性别 <- c('M','F','F','F','M','F')

亲属 <- c('郭啸天','黄药师','铁木真','陈玄风','完颜洪烈','杨铁心')

data <- data.frame(名称,性别,亲属,stringsAsFactors = F)

data

姓名 <- c('郭靖','黄蓉','王重阳','梅超风','欧阳锋','一灯大师')

身份 <- c('侠之大者','女中诸葛','全真教掌门','黑风双煞','白驼山庄主','大理高僧')

武功 <- c('降龙十八掌',' 落英神剑掌','全真剑法','九阴白骨爪','蛤蟆功','一阳指')

pd <- data.frame(姓名,身份,武功,stringsAsFactors = F)

pd

 

【2】按照指定列合并

merge(data,pd,by.x='名称',by.y='姓名')

(3)逻辑值all为假时

【1】交集合并(默认情况)

merge(data,pd,by.x='名称',by.y='姓名',all=F)

(4)逻辑值all为真时

【1】并集合并

merge(data,pd,by.x = '名称',by.y = '姓名',all=TRUE)

(5)逻辑值all.x=TRUE且all.y=FALSE时

【1】取x的全集与匹配的y数据

merge(data,pd,by.x = '名称',by.y = '姓名',all.x=TRUE,all.y=FALSE)

(6)逻辑值all.y=TRUE且all.x=FALSE时

【1】取y的全集与匹配的x数据

merge(data,pd,by.x = '名称',by.y = '姓名',all.y=TRUE,all.x=FALSE)

(7)sort的调用

【1】是否按照公共列排序

merge(data,pd,by.x = '名称',by.y = '姓名',all=TRUE,sort=TRUE)

merge(data,pd,by.x = '名称',by.y = '姓名',all=TRUE,sort=FALSE)

(8)suffix的调用

【1】构建数据框

#  merge()函数

名称 <- c('郭靖','黄蓉','华筝','梅超风','杨康','穆念慈')

性别 <- c('M','F','F','F','M','F')

亲属 <- c('郭啸天','黄药师','铁木真','陈玄风','完颜洪烈','杨铁心')

武功 <- c('空明拳','兰花拂穴手','无','摧心掌','九阴白骨爪','逍遥游拳法')

data <- data.frame(名称,性别,亲属,武功,stringsAsFactors = F)

data

姓名 <- c('郭靖','黄蓉','王重阳','梅超风','欧阳锋','一灯大师')

身份 <- c('侠之大者','女中诸葛','全真教掌门','黑风双煞','白驼山庄主','大理高僧')

武功 <- c('降龙十八掌',' 落英神剑掌','全真剑法','九阴白骨爪','蛤蟆功','一阳指')

pd <- data.frame(姓名,身份,武功,stringsAsFactors = F)

pd

【2】默认显示变量来源的后缀

merge(data,pd,by.x = '名称',by.y = '姓名',all=TRUE,sort=TRUE,suffixes = c('.x','.y'))

【3】个性化显示变量来源的后缀

merge(data,pd,by.x = '名称',by.y = '姓名',all=TRUE,sort=TRUE,suffixes = c('.data','.pd'))

三:实验参考

[1] merge()函数--R语言_merge函数-CSDN博客

[2] R语言的merge函数_r语言merge函数用法-CSDN博客

 

相关文章:

【数据挖掘】练习2:数据管理2

课后作业2&#xff1a;数据管理2 一&#xff1a;上机实验2 # 编写函数stat&#xff0c;要求该函数同时计算均值&#xff0c;最大值&#xff0c;最小值&#xff0c;标准差&#xff0c;峰度和偏度。 install.packages("timeDate") library(timeDate) stat <- func…...

【iOS】——Blocks

文章目录 前言一、Blocks概要1.什么是Blocks 二、Block模式1.block语法2.block类型变量3.截获自动变量值4._Block修饰符5.截获的自动变量 三、Blocks的实现1.Block的实质2.截获自动变量值3._Block说明符4.Block存储域 前言 一、Blocks概要 1.什么是Blocks Blocks是C语言的扩…...

体验OceanBase OBD V2.5.0 组件内扩容和组件变更

背景 OBD 是OceanBase的命令行部署工具&#xff0c;在 obd V2.5.0 版本之前&#xff0c;其主要功能主要是部署各类组件&#xff0c;例如 oceanbase-ce,obproxy-ce,obagent 等。然而&#xff0c;它并不支持组件的变更操作以及组件内部的扩缩容调整。具体来说&#xff1a; 1、若…...

关于前端的学习

目录 前言: 1.初识HTML: 1.1超文本: 1.2标记语言: 2.关于html的基本框架: 3.HTML基本文字标签: 3.1.h标题标签: 3.3 文本内容: 3.4换行的和分割的: 3.5 特殊文字标签: 3.5.1表面上看着三对的结果呈现都是一样的: 3.5.2但是其背后的效果其实是不一样的: 3.6转义字符:…...

DataX脚本告别手动编写,用大模型或Java代码自动生成

在离线数仓开发中,DataX支持多种数据源,性能好抽取速度快。美中不足的是,对需要抽取的每一张表都需要写配置文件,这样很繁琐和耗时。可以用大模型提示词来节省这方面的工作量。ChatGPT等大模型并不能很智能提供一个完全正确的,需要提供一个模板让它参考。 方法1:用大模型…...

ASP.NET通过Appliaction和Session统计在人数和历史访问量

目录 背景: Appliaction&#xff1a; Session&#xff1a; 过程&#xff1a; 数据库&#xff1a; Application_Start&#xff1a; Session_Start&#xff1a; Session_End&#xff1a; Application_End&#xff1a; 背景: 事件何时激发Application_Start在调用当前应用…...

在基于全志V851se的TinyVision上手动构建 Linux 6.1 + Debian 12 镜像

构建 SyterKit 作为 Bootloader SyterKit 是一个纯裸机框架&#xff0c;用于 TinyVision 或者其他 v851se/v851s/v851s3/v853 等芯片的开发板&#xff0c;SyterKit 使用 CMake 作为构建系统构建&#xff0c;支持多种应用与多种外设驱动。同时 SyterKit 也具有启动引导的功能&a…...

使用jenkins-pipeline进行利用项目文件自动化部署到k8s上

Discard old builds:丢弃旧的构建,目的是管理存储空间、提升性能以及保持环境整洁 Do not allow concurrent builds: 禁止并发构建是指同一时间内只允许一个构建任务执行,避免多个构建同时运行可能带来的问题 Do not allow the pipeline to resume if the controller resta…...

unity发布安卓获取读取权限

一、Player Settings 设置 Player Settings>Player>Other Settings> Android > Write Permission > External (SDCard). 二、代码 using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEngine.Andr…...

VSCode下使用github初步

由于各种需要&#xff0c;现在需要统一将一些代码提交搞github&#xff0c;于是有了在VSCode下使用github的需求。之前只是简单的使用git clone&#xff0c;代码提交这些用的是其他源代码工具&#xff0c;于是得学习实操下&#xff0c;并做一记录以备后用。 安装 VSCode安装 …...

华为设备配置命令大全

目录 一、华为设备常用命令视图 二、返回命令和保存命令 三、设置设备名称 四、关闭泛洪信息 五、设置设备接口的IP地址和子网掩码 六、交换机的登录 6.1、设置Consile接口密码 6.2、设置Telent接口密码 七、VLAN配置 7.1、创建VLAN 7.2、进入vlan视图 7.3、把端口…...

详解基于快速排序算法的qsort的模拟实现

目录 1. 快速排序 1.1 快速排序理论分析 1.2 快速排序的模拟实现 2. qsort的模拟实现 2.1 qsort的理论分析 2.2 qsort的模拟实现 qsort函数是基于快速排序思想设计的可以针对任意数据类型的c语言函数。要对qsort进行模拟实现&#xff0c;首先就要理解快速排序。 1. 快…...

鸿蒙Harmony应用开发—ArkTS声明式开发(绘制组件:Polyline)

折线绘制组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Polyline(value?: {width?: string | number, height?: string | number}) 从API version 9开始&#xff0c…...

项目风险管理

项目风险管理 1 规划风险管理2 识别风险1.2 输出 3 实施定性风险分析3.1 输入3.2 输出 4 实施定量风险分析4.1 输入4.2 输出 5 规划风险应对5.1 输入5.2 输出 6 实施风俗应对6.1 输入6.2 输出 7 监督风险7.1 输入7.2 输出 项目风险是一种不确定的事件或条件&#xff0c;一旦发生…...

glib交叉编译

Glib交叉编译 逸一时&#xff0c;误一世。 —— 田所浩二「夏夜银梦」 交叉编译 GLib 涉及到在一个平台上生成能够在另一个平台上运行的目标文件。在这种情况下&#xff0c;我们将会在一台主机&#xff08;通常是开发机器&#xff09;上使用交叉编译工具链来构建 GLib 库&#…...

Android11实现能同时开多个录屏应用(或者共享屏幕或投屏时录屏)

1.概述 Android原生对MediaProjection的管理逻辑&#xff0c;是如果服务端已经保存有MediaProjection的实例&#xff0c;那么再次创建的时候&#xff0c;之前的MediaProjection实例就会被暂停&#xff0c;并且引用指向新的实例&#xff0c;也就导致了当开启后一个录屏应用时&a…...

音视频实战---音频重采样

1、使用swr_alloc()创建重采样实例 2、使用av_opt_set_int函数设置重采样输入输出参数 3、使用swr_init函数初始化重采样器 4、使用av_get_channel_layout_nb_channels函数计算输入源的通道数 5、给输入源分配内存空间–av_samples_alloc_array_and_samples 6、计算输出采…...

主存中存储单元地址的分配

主存中存储单元地址的分配 为什么写这篇文章? 因为我看书中这部分时&#xff0c;看到下面的计算一下子没反应过来&#xff1a; 知识回顾&#xff08;第1章&#xff09; 计算机系统中&#xff0c;字节是最小的可寻址的存储单位&#xff0c;通常由8个比特&#xff08;bit&…...

Python和R的区别是什么,Python与R的应用场景是什么?

如果你这么问&#xff0c;那么你可能正站在数据科学的起点。对于志在成为数据专业人员的你来说&#xff0c;学习编程是无疑的。我想行你早就听过Python 与R的比较之声&#xff0c;并在选择中感到困惑。在此&#xff0c;我想说&#xff0c;也算是一种安慰吧&#xff1a;对于语言…...

azure databricks 常用的JDBC连接

做个笔记常用的spark-jdbc连接 1、mysql 的连接 def query_mysql(database,sqlstr):jdbcUsernamejdbcHostname " "jdbcDatabase ""jdbcPort 3306mysql_df spark.read \.format("jdbc") \.option("driver","com.mysql.cj.jdb…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...