R语言 | 数据框

目录

一、认识数据框

7.1 建立第一个数据框

7.2 验证与设定数据框的列名和行名

 二、认识数据框的结构

 三、获取数据框内容

3.1 一般获取

3.2 特殊字符$

3.3 再看取得的数据

 四、使用rbind()函数增加数据框的行数据

 五、使用cbind()函数增加数据框的列数据

5.1 使用$符号

5.2 一次增加多列数据

 六、再谈转置函数t()


一、认识数据框

数据框是一系列的列向量所组成的,我们可以将它视为矩阵的扩充。对单独的向量与矩阵而言,它们的元素必须相同,但对数据框而言,不同列的向量的元素类别可以不同。数据框还有其他特色如下:

(1)每个列皆有一个名称,如果没有设置,R语言默认该列的名称是V1、V2……,可使用names()和colname(0函数查询或设定数据框列的名称。

(2)每一个行也要有一个名称,R语言默认该行的名称是“1” “2” ……,相当于数字编号,但这些数字是字符串类型,可使用row.naems()函数查询或设定行的名称。

7.1 建立第一个数据框

data.frame()函数,可将多个向量组成是数据框。

7.2 验证与设定数据框的列名和行名

可使用names()和colnames()函数查询或设定数据框列的名称。

 二、认识数据框的结构

如果使用str()函数,了解数据框的结构时,会发现一个问题。 mit.Name(现已改成Name)和mit.Gender(现已改成Gender)分明是字符串向量,但在建立数据框时却成了因子变量。在使用data.frame()函数建立数据框时,可以增加参数“stringsAsFactors=FALSE"。

但我的运行结果却是这样子的:

 三、获取数据框内容

3.1 一般获取

若想要获取数据框的值,可以将数据框当作矩阵处理。

 

3.2 特殊字符$

再看一下mit.Newinfo数据框:

 可以看到每个列名前面皆有"$"符号,这个符号主要是为了方便读取数据框的列名内的数据。

3.3 再看取得的数据

对于对象X而言,当使用X[,n]时,是取得对象X的第n列,所获得的结果是一个向量。如果使用X[n]方式可取得X对象的第n列,则返回的是数据框。如果使用X[-n]方式,则表示取得X对象的除第n列以外的数据,所返回的数据也是数据框。

 四、使用rbind()函数增加数据框的行数据

 如果想要一次增加多笔数据,可以先将这些行数据组合成一个数据框,然后再使用rbind()函数将两个数据框组合即可。

特别需要注意的是,所建数据框的列名必须与想要合并组合的数据框相同,然后使用rbind()函数将两个数据框组合,即可得到想要的结果。当然也可以直接使用索引值增加数据框的行数据。

 五、使用cbind()函数增加数据框的列数据

5.1 使用$符号

为mit.info对象增加Weight列数据,数据分别为65,71,58,55。

5.2 一次增加多列数据

碰上需要一次加多列数据的情况,最简单的方法是为要增加的列数据建立数据框,最后再使用cbind()函数,将两个数据框组合。

 六、再谈转置函数t()

如果我们想要将矩阵对象转换为数据框,可以依照下列两个步骤进行操作。

(1)使用t()函数,将行向量组成的矩阵转换成向量格式。

(2)正式转成数据框。 

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

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

相关文章

超星学习通小助手多线程工具Python

话不多说,直接开始,不会安转的直接使用后面两款,下载直接打开exe运行 第一款:网课小助手python,需要自行安装Python环境(支持Windows、Mac、Linux各种环境) https://wwiv.lanzoul.com/ifVrC0vk…

时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测

时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测 目录 时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 基于贝叶斯(bayes)优化卷积神经网络-门控循环单元(CNN-GR…

数据库设计与前端框架

数据库设计与前端框架 学习目标: 理解多租户的数据库设计方案 熟练使用PowerDesigner构建数据库模型理解前端工程的基本架构和执行流程 完成前端工程企业模块开发 多租户SaaS平台的数据库方案 多租户是什么 多租户技术(Multi-TenancyTechnology&a…

力扣sql中等篇练习(二十一)

力扣sql中等篇练习(二十一) 1 最大数量高于平均水平的订单 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # Write your MySQL query statement below WITH t1 as (SELECT order_id,avg(quantity) AquantityFROM OrdersDeta…

GEE:如何进行对MOD09GA数据集进行水体/云掩膜并计算NDVI将其导出至云盘?

目录 01 为什么用GEE而不是传统的下载ENVIArcGIS? 02 操作详解 01 为什么用GEE而不是传统的下载ENVIArcGIS? 由于地理空间数据云中缺少2015年10月份的NDVI月合成影像,于是查看了地理空间数据云的NDVI数据集处理的一些介绍如下(地理空间数据…

什么是SpringBoot自动配置

概述: 现在的Java面试基本都会问到你知道什么是Springboot的自动配置。为什么面试官要问这样的问题,主要是在于看你有没有对Springboot的原理有没有深入的了解,有没有看过Springboot的源码,这是区别普通程序员与高级程序员最好的…

【C++】8.编译:CMake工具入门

😏*★,*:.☆( ̄▽ ̄)/$:*.★* 😏这篇文章主要介绍CMake工具的入门使用。————————————————学其所用,用其所学。——梁启超————————————————— 欢迎来到我的博客,一起学习知识…

【前端客栈】使用CSS实现畅销书排行榜页面

📬📫hello,各位小伙伴们,我是小浪。大家都知道,我最近是在更新各大厂的软件测试开发的面试真题,也是得到了很大的反馈和好评,几位小伙伴也是成功找到了测开的实习,非常不错。如果能前…

Java的线程

介绍线程 线程是系统调度的最小单元,一个进程可以包含多个线程,线程是负责执行二进制指令的。 每个线程有自己的程序计数器、栈(Stack)、寄存器(Register)、本地存储(Thread Local&#xff09…

Git常用命令rebase

Git常用命令rebase 1、git常用命令rebase rebase 会把你当前分支的 commit 放到公共分支的最后面,所以叫变基,就好像你从公共分支又重新拉出来这个 分支一样。 例如如果你从 master 拉了个 feature 分支出来,然后你提交了几个 commit&…

【C++】YY带你手把手掌握C++系列 (P2)未完结

前言 大家好,这里是YY的带你手把手掌握C系列。大部分知识点都含有【特性介绍】【使用场景】【注意要点】【易混淆点】【代码演示】【画图演示】由于C体系之庞大,所以该系列以分P形式更新!本篇博客为P2! 大家可以通过本篇博客查找C…

【鲁棒优化、机会约束】具有分布鲁棒联合机会约束的能源和储备调度研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

项目实现读写分离操作(mysql)

读写分离 1.问题说明 2.读写分离 Master(主库)----(数据同步)—> Slave(从库) Mysql主从复制 mysql主从复制 介绍 mysql主从复制是一个异步的复制过程,底层是基于mysql数据库自带的二进制日志功能。就是一台或多台…

算法套路十七——买卖股票问题:状态机 DP

算法套路十七——买卖股票问题:状态机 DP 状态机DP是一种将动态规划方法应用于有限状态机(Finite State Machine)的问题求解方法。 状态机DP(State Machine DP)是一种动态规划的思想,它通常用于解决一些具…

如何应用金字塔模型提高结构化表达能力

看一下结构化表达的定义: 结构化表达:是基于结构化思维,理清事物整理与部分之间关系、换位思考后,进行简洁、清晰和有信服力的表达,是一种让受众听得明白、记得清楚、产生认同的精益沟通方式。 结构化表达的基本原则是…

总结如何申请注册 GitHub 教师教育优惠 Benefits for Teachers 来免费使用 copilot

目录 1. GitHub 教师教育优惠有什么2. 如何申请教师教育优惠呢2.1 选择学校2.2 更改个人信息2.3 准备证明材料2.4 提交申请2.5 遇到的问题2.5.1 问题 12.5.2 问题 22.5.3 问题 3 3. 申请免费的 GitHub Copilot 学生注册不在此处赘述了,网上有很多教程可以参考。但是…

前端BFC

一、首先我们要先了解常见的定位方案,总共3种(普通流、浮动、绝对定位) 而BFC是属于普通流的 我们可以把BFC看作为页面的一块渲染区域,他有着自己的渲染规则 简单来说BFC可以看作元素的一种属性,当元素拥有了BFC属性…

Python os模块详解

1. 简介 os就是“operating system”的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页也可以极大增强代码的可移植性。如果该模块中相…

二叉堆讲解

二叉堆讲解 大顶堆和小顶堆 从二叉堆的结构说起,它是一棵二叉树,并且是完全二叉树,每个结点中存有一个元素(或者说,有个权值)。 堆性质:父亲的权值不小于儿子的权值(大根堆&#x…

什么是JS事件流

什么是JS事件流? 一&#xff1a;事件冒泡 <!DOCTYPE html> <html lang"en"> <head><title>事件冒泡例子</title> </head> <body><div id"box">点击我</div> </body> </html>上述的代…