美文网首页R
R的数据框基本操作:创建、访问、修改

R的数据框基本操作:创建、访问、修改

作者: MC学公卫 | 来源:发表于2019-03-13 16:02 被阅读143次

数据框是R中数据组织最常用的方式。
与矩阵类似的是,它们都是表格的形式,不同的是,数据框是多个不同存储类型的向量集合,而矩阵是要求所有向量的存储类型相同。

创建数据框data.frame()

data.frame(域名1=向量名1,域名2=向量名2,....)
可通过names()函数显示各个域名。

> Name = c("Jack", "May","Rose","Tom")
> maths = c(78,99,89,80)
> Chinese = c(88,87,69,90)
> English = c(90,85,83,93)

> df = data.frame(studentName = Name, ChineseScore = Chinese, MathScore = maths, EnglishScore = English)
> df
  studentName ChineseScore MathScore EnglishScore
1        Jack           88        78           90
2         May           87        99           85
3        Rose           69        89           83
4         Tom           90        80           93

> str(df)
'data.frame':   4 obs. of  4 variables: #obs指的是行,variables指的是列
 $ studentName : Factor w/ 4 levels "Jack","May","Rose",..: 1 2 3 4
 $ ChineseScore: num  88 87 69 90
 $ MathScore   : num  78 99 89 80
 $ EnglishScore: num  90 85 83 93

注意studentName的存储类型是因子(Factor)。关于因子,是一种特殊向量,后续再做讨论。

你也可以创建一个空的数据框:

> a = data.frame(x1=character(0),x2=logical(0),x3=numeric(0))
> a
[1] x1 x2 x3
<0 rows> (or 0-length row.names)
> str(a)
'data.frame':   0 obs. of  3 variables:
 $ x1: Factor w/ 0 levels: 
 $ x2: logi 
 $ x3: num 

访问数据框

有3种方式:

  • 数据框名$域名(常用)
  • 数据框名[["域名"]]
  • 数据框名[[域编号]]
> df
  studentName ChineseScore MathScore EnglishScore
1        Jack           88        78           90
2         May           87        99           85
3        Rose           69        89           83
4         Tom           90        80           93
> df$ChineseScore
[1] 88 87 69 90
> df[["ChineseScore"]]
[1] 88 87 69 90
> df[[2]]
[1] 88 87 69 90

也可以用绑定函数attach来直接访问里面的向量,这样的好处是无需指定数据框名称。

> attach(df)
> ChineseScore
[1] 88 87 69 90
> detach(df)

注意attach和detach必须配对出现。所以使用时要谨慎。

与attach和detach类似的函数作用又with函数,基本书写格式为:

with(数据框名,{
域访问函数1
域访问函数2
·
·
·
})

还是刚才的例子:

> df
  studentName ChineseScore MathScore EnglishScore
1        Jack           88        78           90
2         May           87        99           85
3        Rose           69        89           83
4         Tom           90        80           93
> with(df,{
+ print(ChineseScore)
+ SumScore = ChineseScore + MathScore + EnglishScore #生成局部向量
+ print(SumScore)
+ })
[1] 88 87 69 90
[1] 256 271 241 263

注意这个SumScore是局部向量,在with{}之外无法使用:

> SumScore
Error: object 'SumScore' not found

修改数据框

1. 添加列

若要修改数据框中的域值,将这个总分SumScore加入到数据框中,怎么办呢?利用within函数可以办到,格式为:

数据框名 = within(数据框名,{
域访问函数
·
·
·
域修改函数
·
·
·
})

在df中加入SumScore的具体操作:

> df = within(df,{
+ SumScore = ChineseScore + MathScore + EnglishScore
+ })
> df
  studentName ChineseScore MathScore EnglishScore SumScore
1        Jack           88        78           90      256
2         May           87        99           85      271
3        Rose           69        89           83      241
4         Tom           90        80           93      263 

在within{}内生成的新向量默认加入数据框,成为新的域。
这样的好处是无需生成新的变量,再添加进去,节省了内存。

2. 修改数据框列的顺序

如果要把ChineseScore,MathScore对换一下的话
df[,c('studentName','MathScore','ChineseScore','EnglishScore','SumScore')]

3. subset筛选数据

筛选出总分为SumScore大于260的数据:

x = subset(df, SumScore > 260)
x
  studentName ChineseScore MathScore EnglishScore SumScore
2         May           87        99           85      271
4         Tom           90        80           93      263

本文参考:《R语言数据挖掘》第2版 薛薇 编著
本文持续更新中

相关文章

  • R的数据框基本操作:创建、访问、修改

    数据框是R中数据组织最常用的方式。与矩阵类似的是,它们都是表格的形式,不同的是,数据框是多个不同存储类型的向量集合...

  • R: 向量(vector)元素操作总结

      R语言中的向量可以说是经常使用到的数据数据类型,所以总结了一下向量的相关操作,包含创建、访问、插入和删除、修改...

  • 工具 | Pandas 100 题

    创建 Series 数据类型 列表创建 ndarray 创建 字典创建 Series 基本操作 修改 Series...

  • 数据库笔记

    最基本数据库MYSQL常识: 数据库的操作主要包括 数据库的操作,包括创建、删除 表的操作,包括创建、修改、删除 ...

  • SQL 数据基本操作

    SQL 数据基本操作 创建表: 删除表: 增加信息: 修改信息: 数据删除: 数据查询: 其他操作(搜索 查询)基...

  • 元组

    与列表的区别 都是有序的集合 元组不可修改 元组的操作 创建元组 基本操作 访问元素 修改元素(不允许) 删除元素...

  • R语言--高效操作数据框(dplyr包)(3)

    本文是R语言--高效操作数据框(dplyr包)系列的第三篇,主要介绍了数据框连接操作、数据框集合操作和数据框的分组...

  • R的矩阵基本操作:创建与访问

    创建矩阵 (1)向量合并形成矩阵cbind() cbind(向量名列表)行数=向量中的元素个数,列数=向量个数。需...

  • Hive 基本操作

    数据库基本操作 ( 和MySQL脚本相似 ): 创建删除库操作 创建删除表操作 hive 特点 Hive不支持修改...

  • Mysql 数据库

    数据库的主要操作包括: 数据库的操作:创建、删除 表的操作:创建、修改、删除 数据的操作:增加、修改、删除、查询 ...

网友评论

    本文标题:R的数据框基本操作:创建、访问、修改

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