R 学习笔记(4) -- 数据框

作者: wangpeng905 | 来源:发表于2017-04-04 18:42 被阅读52次

数据框是列表的一种特例,可以看成是每个组件都是长度相同的向量的列表。数据框有类似列表的特性,也有类似矩阵的特性。

创建数据框

data.frame() 函数:

> kids
[1] "Jack" "Jill"
> ages
[1] 12 10
> # stringsAsFactors=FALSE 参数相当于 as.is=TRUE
> # options() 函数可以设置全局 stringsAsFactors 选项
> d <- data.frame(kids,ages,stringsAsFactors=FALSE)
> d
  kids ages
1 Jack   12
2 Jill   10
> str(d)
'data.frame':   2 obs. of  2 variables:
 $ kids: chr  "Jack" "Jill"
 $ ages: num  12 10

> # 不同的访问数据框的列的方式,有列表的方式和矩阵的方式
> d[[1]]
[1] "Jack" "Jill"
> d$kids
[1] "Jack" "Jill"
> d[,1]
[1] "Jack" "Jill"

提取子集

数据框提取子集的方法可以用类似矩阵取子集的方式,也可以用矩阵的方式进行筛选。
缺失值(NA)的去除可以用 na.rm=TREU 。
subset() 函数取子集,默认去除缺失值 NA,更方便。
从数据框中去除包含缺失值的观测,可以利用 complete.case() 函数简化操作,complet.case() 函数检测每一行是否包含 NA 生成一个布尔型向量。
rbind() 和 cbind() 函数也可以用来给数据框增加行和列。

合并数据框

merge() 函数,类似关系型数据库中根据某个共同变量合并两个表,merge() 函数可以合并两个数据框并生成一个新的数据框:

> d1
     kids states
1    Jack     CA
2    Jill     MA
3 Jillian     MA
4    John     HI
> d2
  ages    kids
1   10    Jill
2    7 Lillian
3   12    Jack
> d <- merge(d1,d2)
> d
  kids states ages
1 Jack     CA   12
2 Jill     MA   10
> # 共同变量有重复值,用 merge() 合并出现错误
> d2a <- rbind(d2,list(15,"Jill"))
> d2a
  ages    kids
1   10    Jill
2    7 Lillian
3   12    Jack
4   15    Jill
> merge(d1,d2a)
  kids states ages
1 Jack     CA   12
2 Jill     MA   10
3 Jill     MA   15

如果共同变量在其中一个数据框中有重复值,用 merge() 合并可能出现错误。

对数据框使用 lapply() 函数

数据框是列表的一种特例,也可以应用 lapply() 函数。

> d2
  ages    kids
1   10    Jill
2    7 Lillian
3   12    Jack
> d3 <- lapply(d2,sort)
> d3
$ages
[1]  7 10 12

$kids
[1] "Jack"    "Jill"    "Lillian"

但这个例子破坏了名字和年龄之间的对应关系,没有意义,仅为示例。


读古人的书,一方面要知道古人聪明到怎样,一方面也要知道古人傻到怎样。--胡适

相关文章

  • R 学习笔记(4) -- 数据框

    数据框是列表的一种特例,可以看成是每个组件都是长度相同的向量的列表。数据框有类似列表的特性,也有类似矩阵的特性。 ...

  • 03-04

    2021-03-04 3-4-2 数据框 打开02-data-structure.R 1.数据框来源 (1)在...

  • R数据科学》学习笔记|Note4:使用dplyr进行数据转换(上

    原文链接:R数据科学》学习笔记|Note4:使用dplyr进行数据转换(上)[https://mp.weixin....

  • 第2章 创建数据集

    《R语言实战》笔记系列 本章学习大纲 1.R的数据结构 2.输入数据 3.导入数据 4.标注数据 第一部分 R的数...

  • 学习小组Day6笔记--郝志刚

    R语言学习 1 获得学习小抄 tidyr包的小抄 2 tidyr包功能 (1)数据框的变形(2)处理数据框中的空值...

  • 学习小组Day4笔记--呛

    Day4学习笔记 R语言初体验 怎么理解R 百度百科:R语言常用在数据统计分析、数据绘图和数据挖掘,是一种编程语言...

  • 学习小组Day4--呛

    Day4学习笔记 R语言初体验 怎么理解R 百度百科:R语言常用在数据统计分析、数据绘图和数据挖掘,是一种编程语言...

  • R语言数据结构-向量

    R语言数据结构主要有以下四种: 1.向量2.数据框3.矩阵4.列表 最好理解的是数据框,数据框约等于“表格” 第一...

  • 191201 R语言学习笔记2

    day1已经获得了一个数据框,先学习对这个数据框进行操作 切片操作,取第1,3行, 然后取第4,6列 R自带很多数...

  • R语言日常笔记(2)distinc函数

    接上文:R语言日常笔记(1)filter函数 所使用的数据集是starwars数据集 本文将会接受如何数据框处理的...

网友评论

    本文标题:R 学习笔记(4) -- 数据框

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