热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

dataframe根据条件查找_从零开始学R语言Day6|DataFrame

从零开始学R语言Day6|DataFrame1.0DataFrame类型​DataFrame是一种用于存储类似电子表格的数据的格式,他可以同时存储多个维度不同类型的数

从零开始学R语言Day6|DataFrame

1.0 DataFrame类型

​ DataFrame是一种用于存储类似电子表格的数据的格式,他可以同时存储多个维度不同类型的数据,就像我们所熟悉的excel、csv文件一样,通常我们调用或导入的excel、csv文件的数据格式都是DataFrame格式的。

1.1 创建数据框

​ 使用data.frame函数创建DataFrame类型数据,创建DataFrame输入的数据一般是以列为单位输入,实例如下

> a <- data.frame(
&#43; name &#61; c("zhangsan","lisi","wangwu","zhaoliu"),
&#43; subject &#61; c("math","math","math","math"),
&#43; score &#61; c(76,81,63,90),
&#43; row.names &#61; NULL #行的名字为空&#xff0c;若需要&#xff0c;可以自己定义想要的行名&#xff0c;方式参照其他参数
&#43;
&#43; )

​ 我们可以直接print(a)在终端打印&#xff0c;也可以使用View(a)输出结果&#xff0c;用View(a)打印的结果往往更直观美观&#xff0c;在这里两种形式都将展示

print(a)name subject score
1 zhangsan math 76
2 lisi math 81
3 wangwu math 63
4 zhaoliu math 90
View(a)

2561c5426642c6fbb534ed930b5276ca.png

1.2 获取结构和摘要

​ 使用str()函数获取DataFrame的结构

> str(a)
&#39;data.frame&#39;: 4 obs. of 3 variables:$ name : Factor w/ 4 levels "lisi","wangwu",..: 3 1 2 4$ subject: Factor w/ 1 level "math": 1 1 1 1$ score : num 76 81 63 90

​ 使用summary()获取数据的摘要和性质

> summary(a)name subject score lisi :1 math:4 Min. :63.00 wangwu :1 1st Qu.:72.75 zhangsan:1 Median :78.50 zhaoliu :1 Mean :77.50 3rd Qu.:83.25 Max. :90.00

​ 那么为什么有必要特意提及这两个函数呢&#xff1f;因为在实际的数据清理和处理过程中&#xff0c;我们面临的数据量可能十分庞大&#xff0c;打开数据文件一时也难以分析出数据的特征&#xff0c;而这两个函数就能很方便的给我们呈现一些特征&#xff0c;方便我们接下来的编程处理&#xff08;PS&#xff1a;数据处理是需要我们根据数据的特征来写代码的&#xff09;为了方便说明&#xff0c;我在此举一个数据比较大的例子&#xff0c;方便大家理解

6bc708354bb55dd42dd59db79450a424.png

​ 大家看到红色部分&#xff0c;这是一个有一千多条数据的数据集&#xff0c;面板只有那么大&#xff0c;能看到的只是局部的数据&#xff0c;因此难以把握数据的全貌。

> data <- read.csv("ncov_num.csv",encoding&#61;"UTF-8") #导入数据文件中的数据
> is.data.frame(data) #判断数据是否是dataframe类型
[1] TRUE #值为真&#xff0c;说明是dataframe类型
> str(data) #查看数据结构
&#39;data.frame&#39;: 1385 obs. of 11 variables:$ X : int 0 1 2 3 4 5 6 7 8 9 ...$ ann_date : int 20200124 20200124 20200124 20200124 20200124 20200124 20200124 20200124 20200124 20200124 ...$ area_name : Factor w/ 31 levels "安徽省,中国内地",..: 29 18 2 14 25 19 1 21 22 5 ...$ parent_name : Factor w/ 2 levels "3","中国内地": 1 2 1 1 1 1 1 1 1 1 ...$ level : int 5 3 36 3 15 2 15 15 1 53 ...$ confirmed_num : int NA 2 NA NA NA NA NA NA NA NA ...$ suspected_num : logi NA NA NA NA NA NA ...$ confirmed_num_now: logi NA NA NA NA NA NA ...$ suspected_num_now: int 0 NA 1 0 0 0 0 0 0 2 ...$ cured_num : int 0 0 0 0 0 0 0 0 0 0 ...$ dead_num : int NA 0 NA NA NA NA NA NA NA NA ...

​ 整个文件的数据结构和主要的数据特征都在上面呈现出来&#xff0c;比如说我们通过这个操作就发现这个文件中有大量的NA值&#xff0c;而之后我们将知道&#xff0c;使用条件语句时&#xff0c;NA值时无法判断真假的&#xff0c;将会报错。因此就会考虑优先去除NA值这一操作&#xff0c;从而避免报错之后来寻错而造成的大量时间损失

> summary(data)X ann_date area_name parent_name Min. : 0 Min. :20200124 北京市,中国内地: 52 3 :1246 1st Qu.: 346 1st Qu.:20200204 广东省,中国内地: 52 中国内地: 139 Median : 692 Median :20200216 黑龙江省 : 52 Mean : 692 Mean :20200221 湖北省,中国内地: 52 3rd Qu.:1038 3rd Qu.:20200228 四川省,中国内地: 52 Max. :1384 Max. :20200315 重庆市,中国内地: 52 (Other) :1073 level confirmed_num suspected_num confirmed_num_nowMin. : 1 Min. : 2.0 Mode:logical Mode:logical 1st Qu.: 72 1st Qu.: 44.5 NA&#39;s:1385 NA&#39;s:1385 Median : 206 Median : 75.0 Mean : 2007 Mean :164.3 3rd Qu.: 576 3rd Qu.:319.0 Max. :67794 Max. :482.0 NA&#39;s :1246 suspected_num_now cured_num dead_num Min. : 0.0 Min. : 0.00 Min. : 0.000 1st Qu.: 10.0 1st Qu.: 0.00 1st Qu.: 0.000 Median : 87.0 Median : 1.00 Median : 1.000 Mean : 932.5 Mean : 73.43 Mean : 3.669 3rd Qu.: 307.0 3rd Qu.: 4.00 3rd Qu.: 6.500 Max. :54278.0 Max. :3085.00 Max. :13.000 NA&#39;s :139 NA&#39;s :1246

​ 而倘若我们需要做一些统计分析等等&#xff0c;summary函数则会直观的统计出各个维度数据的重要指标信息&#xff0c;如上&#xff0c;最小值、最大值、四分位数、中位数、空值数目等等……这些数据都有利于我们对一个庞大的数据集形成大致的基本的认知。

1.3提取特定行或列

1.3.1提取特定列

​ 对于一个庞大的文件&#xff0c;我们很多时候往往只需要抽取一个维度的数据进行分析&#xff0c;因此提取特定列的作用显得相当重要&#xff0c;而在R中提取特定列相当简单&#xff0c;语法是 data.frame(数据的变量名$列名)&#xff0c;具体实例如下&#xff1a;

#在后面的例子中data都是指的下面第一行中的这个data变量名&#xff01;&#xff01;&#xff01;
> data <- read.csv("ncov_num.csv",encoding&#61;"UTF-8")
> confirmed.num <- data.frame(data$confirmed_num)
> View(confirmed.num)

a4beaaf9845ae86738771334efedeafb.png

1.3.2提取前n行(n为任意整数)的所有列

result <- data[1:2,] #提取前两行的所有列

效果&#xff1a;

727dc53ef3f3ff539fb6cc63b5572e71.png

1.3.3提取单元格数据

变量名[行&#xff0c;列]

result <- data[2,3]

338f007abdbd862ddeaeaaccf45134e4.png

如果要提取任意的几个单元格的数据该怎么做&#xff1f;

> result <- data[c(2,3),c(2,5)]

没错&#xff0c;就是用c函数将每一个行列的单元格联接起来

c6bd5eee509116bd5b26b4578f3e6ad0.png

1.4添加行和列

1.4.1 添加列

​ 添加列只需要用新列命来添加列向量&#xff0c;示例如下

> a <- data.frame(
&#43; name &#61; c("zhangsan","lisi","wangwu","zhaoliu"),
&#43; subject &#61; c("math","math","math","math"),
&#43; score &#61; c(76,81,63,90)
&#43;
&#43; )
> aname subject score
1 zhangsan math 76
2 lisi math 81
3 wangwu math 63
4 zhaoliu math 90> a$dept <- c("Operations","IT","HR","Finance") #这就是增加的那一个向量
>
>
> b <- a #把增加了列的新向量复制给b
> bname subject score dept
1 zhangsan math 76 Operations
2 lisi math 81 IT
3 wangwu math 63 HR
4 zhaoliu math 90 Finance#前后对比一下就发现成功加入了一列

​ 注意&#xff01;&#xff01;&#xff01;添加的新列的元素必须和其他列的元素个数相同&#xff0c;否则会报错

​ 如果是两个dataframe结构相同&#xff0c;比如说都是4×4的结构&#xff0c;则可以使用cbind()函数将其粘合起来&#xff0c;这里不再举例&#xff0c;具体操作和矩阵一直&#xff0c;请回看Day4

1.4.2添加行

添加行只有一种方式就是使用与现有数据帧相同结构的新行&#xff0c;并使用rbind()函数&#xff0c;不再赘述&#xff0c;详细操作请回看Day4

墨跖&#xff1a;从零开始学R语言Day4|向量、矩阵和数组​zhuanlan.zhihu.com

【未完待续&#xff0c;持续更新……】



推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文详细介绍了Python中文件的基本操作,包括打开、读取、写入和关闭文件的方法,并通过实例展示了如何将Excel文件转换为CSV文件以及进一步转换为HTML文件。此外,还涉及了成绩等级替换的具体实现。 ... [详细]
  • 使用Pandas高效读取SQL脚本中的数据
    本文详细介绍了如何利用Pandas直接读取和解析SQL脚本,提供了一种高效的数据处理方法。该方法适用于各种数据库导出的SQL脚本,并且能够显著提升数据导入的速度和效率。 ... [详细]
  • 本文介绍如何使用 Python 的 xlrd 库读取 Excel 文件,并将其数据处理后存储到数据库中。通过实际案例,详细讲解了文件路径、合并单元格处理等常见问题。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • ABBYY FineReader:高效PDF转换、精准OCR识别与文档对比工具
    在处理PDF转换和OCR识别时,您是否遇到过格式混乱、识别率低或图表无法正常识别的问题?ABBYY FineReader以其强大的功能和高精度的识别技术,完美解决这些问题,帮助您轻松找到最终版文档。 ... [详细]
  • InmyapplicationIhaveQGraphicsScenewithpixmapaddedandallisviewedinQGraphicsViewwithsc ... [详细]
  • 本文旨在探讨如何利用决策树算法实现对男女性别的分类。通过引入信息熵和信息增益的概念,结合具体的数据集,详细介绍了决策树的构建过程,并展示了其在实际应用中的效果。 ... [详细]
  • python时间序列之ADF检验(1)
    读取数据,pd.read_csv默认生成DataFrame对象,需将其转换成Series对象DataFrame和Series是pandas中最常见的2 ... [详细]
  • ˂p优秀的马里奥YouprobablywanttomakethecreationoftheformuladynamicsoeachrowofCta ... [详细]
  • 利用R语言进行股票价格数据的线性回归分析
    本文介绍了如何使用R语言对Excel中的股票价格数据集执行线性回归分析。通过具体的代码示例,展示了数据的导入、处理及模型构建的过程。 ... [详细]
  • 主板市盈率、市净率及股息率的自动化抓取
    本文介绍了如何通过Python脚本自动从中国指数有限公司网站抓取主板的市盈率、市净率和股息率等关键财务指标,并将这些数据存储到CSV文件中。涉及的技术包括网页解析、正则表达式以及异常处理。 ... [详细]
author-avatar
木色雪魂K
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有