首页 > 其他分享 >第九章 数据清理和转换

第九章 数据清理和转换

时间:2023-08-13 09:11:24浏览次数:35  
标签:转换 函数 第九章 na 清理 last 数据 缺失 TRUE

第九章 数据清理和转换

9.1清理字符串

函数 作用
grep、grepl和regexpr 找到与模式相匹配的字符串
sub和gsub 能替换匹配的字符串。
str_detect 返回一个可用于索引的逻辑向量
str_split 接受一个向量作为输入参数,且将返回一个列表,这是因为每个输入的字符串可以被分成长度不同的向量。
str_count 计算出它们在每个名称中的出现次数
str_replace 仅仅替换掉第一匹配的字符串
str_replace_all 替换掉第一匹配的字符串

9.2操作数据框

9.2.1处理缺失值

缺失值记号

  • NA (Not Available,不可用)表示缺失值。
  • NaN (Not a Number,非数值)表示不可能出现的值。
函数 作用
complete.cases(x) 告诉我们哪些行没有缺失值
na.omit(x) 它能删除数据框中所有带有缺失值的行
is.na(x) 检测缺失值是否存在
anyNA(x, recursive = FALSE) 判断数据中是否存在缺失值

当一组数据符合正太分布时,我们知道正太分布大多数都集中在一起,所以使用平均值替代缺失值,

teacher <- c(1,NA,3,4,NA)
country <- c("CAN","US","RUS","UK","NL")
age <- c(NA,29,55,NA,143)
gender1 <- c("M","F","M","M","F")
FT <- data.frame(teacher,country,age,gender1)
FT$teacher[[5]] <- mean(FT$teacher,na.rm = T)

如果一组包含缺失值的数据符合偏态分布,那么我们可以使用数据的中位数来替代出现缺失值的部分

FT$teacher[[2]] <- median(FT$teacher,na.rm = T)

还可以用众数

FT$teacher[[2]] <- as.numeric(names(table(teacher)))[table(Ateacher == max(table(teacher))]

生成缺失数据报告,使用mice包

library(mice)
md.pattern(FT)

9.2.2在宽和长表格之间进行转换

reshape 的函数能用于宽和长形式之间的转换。

但更好的选择是使用 reshape2 包中的功能。melt数将宽形式转换成长形式,dcast 函数把长转换回宽形式

9.3排序

sort 函数按向量从小到大(或从大到小)排序

x表示需要排序的数据集

na.last=NA(默认)表示在排序结果中缺失值将被删除。na.last=TRUE表示将数据缺失值放在最后,na.last=FALSE表示将数据缺失值放在前面。

decreasing = FALSE表示按从小到大的顺序进行排序,decreasing =TRUE表示按从大到小的顺序排序

sort(x, decreasing = FALSE,  ...)

order函数的功能为对数据进行排序,返回值为最小(大)值、次小(大)值……次大(小)值、最大(小)值所在的位置。order 在对数据框排序时非常有用,因为数据框不能直接使用 sort。

x表示需要排序的数据集

na.last=NA(默认)表示在排序结果中缺失值将被删除。na.last=TRUE表示将数据缺失值放在最后,na.last=FALSE表示将数据缺失值放在前面。

order(...,  na.last = TRUE, decreasing = FALSE)

rank函数为返回向量中每个数值对应的秩

x表示需要排序的数据集。

na.last=NA(默认)表示在排序结果中缺失值将被删除。na.last=TRUE表示将数据缺失值放在最后,na.last=FALSE表示将数据缺失值放在前面。

ties.method用于设定对数据集中重复数据的秩的处理方式,ties.method = "average"表示对重复数据的秩取平均值作为这几个数据共同的秩,ties.method = "first"表示重复数据中的位于前面的数据的秩取小,位于后边的依次递增,“random”表示随机定义重复数据的秩,“max”表示以重复数据可能对应的最大秩作为这几个数据共同的秩,“min”表示以重复数据可能对应的最小秩作为这几个数据共同的秩。

rank(x, na.last = TRUE, ties.method = c("average",  "first",  "random",  "max", "min")) 

9.4其他函数

Negate函数接受一个谓词(predicate,即一个返回逻辑向量的函数),并返回另一个刚好相反的谓词。当输入是 FLASE 时,它将返回 TRUE;输入是 FALSE,它返回 TRUE:

Filter函数可以接受两个参数:第一个参数为返回一个逻辑向量的函数;其次为一个输入向 量,它只有在函数返回为 TRUE 时才返回那些值

Position函数将返回第一个把谓词应用于矢量上而返回 TRUE 的索引下标

Find函数返回的是第一个值

Map 函数将一个函数应用于输入参数中的每个元素上。

Reduce 函数能把一个二元函数转变为一个接受多个输入的函数。

标签:转换,函数,第九章,na,清理,last,数据,缺失,TRUE
From: https://www.cnblogs.com/simpleness/p/17626118.html

相关文章

  • 端侧DNN部署——模型转换
    1端侧推理框架经验总结总结下最近用过的一些框架,并介绍他们的主要特点和转换过程。onnxruntimencnnmnntensorflowlitehuaweihiaipaddlelite2模型部署转换过程我们以torchvision库中的resnet50模型为例,介绍模型转换的过程。2.1pytorch转换到otherspytorch是目......
  • 不能从const char *转换为LPCWSTR
    在字符串的前面添加一个大写L。这样可以实现将字符串转换为宽字符集。参考:https://jingyan.baidu.com/article/fec7a1e5f935211190b4e7e8.html......
  • 第九章:一致性与共识
    分布式系统最重要的抽象之一就是共识(consensus):就是让所有的节点对某件事达成一致。如果两个节点都认为自己是领导者,这种情况被称为脑裂(splitbrain),且经常导致数据丢失。正确实现共识有助于避免这种问题。一致性保证不一致性是暂时的,最终会自行解决。最终一致性的一个更好的名......
  • css块级标签、行内标签、行内块标签的特点和相互转换
    块级元素常见的块级元素h1-h6、div、p、ul、ol、li等,div最常用!块级标签的特点独占一行高度、宽度、内外边距都可以设置(重要)宽度默认是容器(父级标签)的100%是一个容器盒子,里面可以放其他行内或者块级元素注意点:1.文字类的元素内,不能在放块级元素,比如p标签、h1-h6......
  • 进制转换原理分析
    我们最熟悉的进制就是从小就学的十进制,“逢十进一”如:然而在计算机CPU操作都是二进制数据0或1,这样就需要我们进行进制的的转换,这里的二进制就是,“逢二进一”如:八进制为,“逢八进一”如:十六进制为,“逢十六进一”如:进制转换原理 进制转换分:整数部分和小数部分1,整数间十进制转其他格式......
  • Cisdem Video Converter for Mac(视频转换工具) 7.10.0中文版
    CisdemVideoConvertermac是一款视频转换软件,它可以将各种常见格式的视频文件转换为其他格式,并提供了多种编辑和调整功能。CisdemVideoConvertermac软件特点-支持批量转换:用户可以同时转换多个视频文件,极大地提高了工作效率。-高质量输出:CisdemVideoConverter支持输出高质......
  • Go数组转换,[]byte、[]unint16互相转换的方法封装,完整范例
    需求:分别封装方法将[]byte转换成[]unint16,将[]unint16转换成[]bytebyte相当于unint8分析:长度为20的[]byte转换为长度为10的[]unint16,他们之间的转换如bytes:=[]byte{0,1}  ===》[0*256+1]=1 注意:第奇数乘256加偶数的值则[]uint16的值为[1]完整代码如下:1pack......
  • 《转换篇》string和int
    string转int参考链接:https://blog.csdn.net/m0_70283041/article/details/126102424//法一inti=int.Parse("100");inttext=int.Parse("整型");//如果把非字符型(除了string以外都不行)或不是整数的字符转为int,则会产生异常inttext=int.Parse("3.5");//如果把非......
  • hutool包将json串转为泛型类出现转换异常
    hutool包将json串转为泛型类出现转换异常问题描述:在使用hutool包的toBean方法转换json为泛型类之后,去获取泛型类的某个字段出现报错。java.lang.ClassCastException:cn.hutool.json.JSONObjectcannotbecasttoXXXX造成原因:当使用JSONUtil将一串json转为一个泛型类,且指定转换......
  • 【JAVA】 将csv格式文件转换为pdf格式文件
    publicvoidcsvtopdf(){StringcsvFilePath="E:/tmp/output.csv";StringpdfFilePath="E:/tmp/outputPdf.pdf";try{Documentdocument=newDocument();PdfWriter.getInstance(document,newFileOutputStr......