二维数据集取子集的3种办法

作者: 灵活胖子的进步之路 | 来源:发表于2020-12-18 00:12 被阅读0次

矩阵及数据框是平常我们处理数据时候常用到的原始数据,特别是数据框data.frame,其不要求每列向量的类型一致,最为常用。在处理数据时,我们经常需要对data.frame取子集,并赋值给新的data.frame,这样可以在不更改原始数据的前提下进行下一步处理,以下以data.frame为例介绍3中常用的二维数据集取子集,矩阵的办法是完全相同的

rm(list = ls())#清空环境变量
options(stringsAsFactors = F)#默认不把字符型变量当做因子

library(stringr)#处理字符串的超好用R包
data(mtcars)#加载数据集
df <- mtcars#定义数据集名称
attach(df)#加载数据集入当前环境
class(df)#查看数据集类型
str(df)
数据集结构

1.取子集的第一种办法为规定行数及列数

df[1:4,1:5]#表示取df数据集前4行及前5列,1:4#表示数字1到4
前4行前5列内容展示
df[1,]#表示取第1行所有内容(第一行所有列)
取第1行所有内容
colnames(df)#表示取列名,可以看出与df[1,]的区别
取列名,注意与df[df,1]的区别
df[,1]#表示取第1列所有内容(第一列所有行)
取第1列所有内容
row.names(df)#表示取行名
取行名

2.取子集的第二种办法为指定行名及列名

我们需要取cyl和wt这两列前4行的内容可以用以下方法

df[1:4,c("cyl","wt")]
cyl和wt这两列前4行的内容

这里说下有的同学可能会写成df[1:4,"cyl","wt"]或[1:4,("cyl","wt")],这里说下中间那个逗号代表维度的意思,逗号前为行,逗号后为列,如果有三个逗号就说明df有三个维度,但实际df为数据框仅有两个维度。后面那种情况虽然注意到了这个问题,但是取子集的时候应该用向量来取,字符串组成向量的时候必须加上C了。

df["Mazda RX4",2:6]#取马自达RX4行2到6列的数据
一个字符串可以不加c()哈

3.第三种办法是用逻辑值取子集,取子集的行或者列的向量为一个逻辑值向量,其取值与行数或者列数相同

#取行名包含Merc行,1:4列的内容
df[str_detect(row.names(df),"Merc"),1:4]
取行名包含Merc行,1:4列的内容

以下分步骤说下

str_detect为stringr包的函数,其作用是在给定的字符串向量中寻找目标向量,简单理解为搜索就好
str_detect(row.names(df),"Merc")的意思是在row.names(df)的字符型向量中寻找"Merc"这一内容,返回为逻辑值,如下图


返回的逻辑值

然后把此逻辑值带入取子集的中括号内就可以了
后续可以把这个子集赋值给一个新名字就可以啦

df_new <- df[str_detect(row.names(df),"Merc"),1:4]
df_new
赋值新子集

相关文章

  • 二维数据集取子集的3种办法

    矩阵及数据框是平常我们处理数据时候常用到的原始数据,特别是数据框data.frame,其不要求每列向量的类型一致,...

  • [R语言实战笔记] 第4章 基本数据管理

    4.10 数据集取子集 对变量或观测进行保留或删除。 4.10.1 选入(保留)变量 从一个大数据集中选择有限数量...

  • 决策树算法

    原理 通过选择最好的特征来划分数据集,对数据子集继续划分,直到数据子集中是相同的类别;划分数据集的特征可以通过计算...

  • 利用R进行数据操作(基础知识篇)

    基本数据管理 目标: 操作日期和缺失值 熟悉数据类型的转换 变量的创建和重编码 数据集的排序、合并与取子集 选入和...

  • 哈佛R语言课程--5.数据框、矩阵、列表取子集

    学习目标 演示如何从现有的数据结构中取子集,合并及创建新数据集。 导出数据表和图以供在R环境以外使用。 1.数据框...

  • R语言数据转换(二)2021.2.25

    1、从大的数据文件中截取出自己想要的子集 1.1 取连续数据 1.2 取间断数据 1.3 取符合条件的数据 例子1...

  • 散点图的绘制

    1.R提供的数据集:Puromycin Puromycin数据集含有23行3列的数据。 截取符合条件的子集 画以c...

  • 如何用R语言取一个数据集的子集的补集

    当你设置了很长的条件去取一个数据集的子集,而你又想通过简单的方法得到这个子集关于这个数据的补集的时候,你应该选择用...

  • R语言-列表

    生成列表list函数 取一个子集 取子集的子集 转换为列表及解除列表 列表的转换

  • 数据框

    1. 数据框的属性 nrow行,rownames()行名ncol列, colnames()列名 2. 数据框取子集...

网友评论

    本文标题:二维数据集取子集的3种办法

    本文链接:https://www.haomeiwen.com/subject/dutogktx.html