等待下一个秋

  • Spark
  • Flink
  • Hive
  • 数据仓库
  • ClickHouse
  • 收徒弟
  • Java
    • Spring
    • Mybatis
    • SpringBoot
    • 面试题
  • Python
    • Python基础
    • 爬虫
    • Numpy
    • matplotlib
    • Flask
  • 技术杂谈
    • Linux知识
    • Docker
    • Git教程
    • Redis教程
    • mysql
    • 前端
    • R语言
    • 机器学习
  • 关于我
  • 其它
    • 副业挣钱
    • 资料下载
    • 资料文档
专注于Hadoop/Spark/Flink/Hive/数据仓库等
关注公众号:大数据技术派,获取更多学习资料。
  1. 首页
  2. 技术杂谈
  3. R语言
  4. 正文

R语言中的数据框

2019年4月3日 10649点热度 0人点赞 0条评论

Data Frame一般被译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的。Data Frame每一列有列名,每一行也可以指定行名。如果不指定行名,那么就是从1开始自增的Sequence来标识每一行。所以说数据框在R语言中可是个好东西,R中它是用的非常频繁也是非常有用的数据集合。

创建数据集

> a1 <- c(1:3) 
> a2 <- c('a','b','v') 
> dat <- data.frame(a1,a2) 
> dat
a1 a2
1 1 a
2 2 b
3 3 v

 

这样就定义了一个以a1、a2为两列的数据框,第一列是数值型,第二列是字符型。
当然了,后面会讲到,读取结构化数据文件的话,比如csv、空格或者逗号分隔的txt文件,我们可以直接用相应的read.csv或者是read.table直接读进来成为数据框。

访问元素
访问第一行:

> dat[1,]
a1 a2
1 1 a

 

访问第一列

> dat[,1]
[1] 1 2 3

 

或者是直接引用列名

> dat$a1
[1] 1 2 3

 

前面讲过,可以直接用attach(dat)绑定dat,就不需要数据名前缀了,这里还是再复习一遍吧!

>attach(dat)
> a1
[1] 1 2 3

 

使用完后解除绑定,及时释放资源,这时候就不能直接用列名了。

添加新列
比如添加一个名为a3的列

> dat$a3 <- c('f','m','f') > dat
a1 a2 a3
1 1 a f
2 2 b m
3 3 v f

 

查询
查询某一个列变量满足某一个条件或者找指定值用的很多,用which()函数。
查询dat中a3列取值为'm'的行,我们可以这样

> dat[which(dat$a3 == 'm'),]
a1 a2 a3
2 2 b m

 

前面讲过,dat[2,]表示dat的第二行,这里which(dat$a3 == 'm')表示满足条件的行,可以有多个,再加上',',构成完整的满足dat中a3列取值为'm'的行的查询语句,这个用的很频繁,需要重点掌握。

连接、合并
这是R语言数据分析基本功。我一般在做R语言网络爬虫时需要把每一张网页数据整理成数据框,然后循环拼接、合并,最后保存到本地。一般用merge()函数。
再创建一个数据框dat1

> dat1 <- data.frame(c('q1','q2','q3'),c(1,4,5)) > dat1
c..q1....q2....q3.. c.4.6.
1 q1 4
2 q2 5
3 q3 6
> names(dat1) <- c('a4','a5') > dat1
a4 a5
1 q1 1
2 q2 4
3 q3 5

 

找出dat的a1属性值与dat1的a5属性等值的所有行进行按列连接,组成新行。

> dat2 <- merge(dat,dat1,by.x = 'a1',by.y = 'a5') > dat2
a1 a2 a3 a4
1 1 a f q1

 

学过数据库的人知道,这相当于数据框库操作的迪卡儿等值连接。
关于R的数据框就到这里!

标签: R语言
最后更新:2019年4月5日

等待下一个秋

待我代码写成,便娶你为妻!专注于Hadoop/Spark/Flink/Hive/数据仓库等,关注公众号:大数据技术派,获取更多学习资料。

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

等待下一个秋

待我代码写成,便娶你为妻!专注于Hadoop/Spark/Flink/Hive/数据仓库等,关注公众号:大数据技术派,获取更多学习资料。

搜一搜
微信
最新 热点 随机
最新 热点 随机
ChatGPT可以做什么 ClickHouse 自定义分区键 ClickHouse数据副本引擎 ClickHouse ReplacingMergeTree引擎 ClickHouse MergeTree引擎 clickhouse简介
大数据简介 基于最小二乘法的线性回归拟合 Flink 是如何统一批流引擎的 大数据相关岗位介绍 黑客与画家 11.百年后的编程语言 感叹一下,不要迷茫,加油吧!
标签聚合
大数据 算法 Redis Python 书籍 R语言 数据仓库 Flink Java mysql Hive 挣钱
文章归档
  • 2023年2月
  • 2022年12月
  • 2022年11月
  • 2022年9月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年5月
  • 2020年4月
  • 2020年1月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年1月
  • 2018年12月
  • 2017年5月

©2022 ikeguang.com. 保留所有权利。

鄂ICP备2020019097号-1

鄂公网安备 42032202000160号