【数据挖掘】练习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博客

 

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MorleyOlsen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值