数据帧

R是一个表的数据帧结构,类似于一个数据库表。一个数据帧被实现为一个列表。的元素列表的列向量或因素,存储数据帧。

创建一个数据帧

可以创建一个数据帧从一组列向量使用data.frame()函数如下:

名称< - c (“P1”、“P2”, T1, T2)

< - c类型(“掠夺”,“掠夺”,“TCOD”,“TCOD”)

使用< - c (100, 150, 200, 250)

df1 < - data.frame(名称、类型、使用)

df1

名字类型的使用

1P1掠夺One hundred.

2P2掠夺150年

3T1 TCOD200年

4T2 TCOD250年

访问数据帧的元素

元素数据帧可以以几种不同的方式访问。单个列可以选择从一个数据帧使用它的索引值。第一列在数据帧索引值1。结果返回一个列表。

df1 [1]

的名字

1P1

2P2

3T1

4T2

返回的列可以选择如下。返回的结果是作为一个数据帧。

df1 [1:2]

名称类型

1P1掠夺

2P2掠夺

3T1 TCOD

4T2 TCOD

df1 [c (1、3)]

名称的使用

1P1One hundred.

2P2150年

3T1200年

4T2250年

返回一个不包括第一列的数据帧,使用1作为索引值:

df1 [1]

类型的使用

1食物One hundred.

2食物150年

3 TCOD200年

4 TCOD250年

返回一个数据帧列因素,使用以下:

df1 [[1]]

[1]P1 P2 T1 T2

级别:P1 P2 T1 T2

Matrix-style索引可以用来返回单独的行,列和元素从一个数据帧。单个元素并返回列因素。

df1 [1]

[1]P1

级别:P1 P2 T1 T2

df1 [1]

[1]P1 P2 T1 T2

级别:P1 P2 T1 T2

如果一行被选中时,它返回一个数据帧。

df1 [1]

名字类型的使用

1P1掠夺One hundred.

访问指定的列

使用下面的列选择一个数据帧的名字。返回的结果是作为一个数据帧。

df1(“名称”)

的名字

1P1

2P2

3T1

4T2

选择多个列,使用:

df1 [c(“名字”,“使用”)]

名称的使用

1P1One hundred.

2P2150年

3T1200年

4T2250年

命名列可能是使用美元操作符访问作为一个因素如下:

美元df1类型

[1]掠夺食物TCOD TCOD

级别:掠夺TCOD

colnames()函数返回一个包含列名矢量数据帧:

colnames (df1)

[1]“名称”“类型”“使用”

一般来说,指定列的数据帧可以用来代替他们的索引值。使用命名列(在可能的情况下)可能使R脚本更具可读性。

子集()函数

子集()函数也可以用来从一个数据帧选择列。这个函数允许条件下放置在列值返回。选择一列,使用子集()函数如下:

子集(df1,选择=名字)

的名字

1P1

2P2

3T1

4T2

选择多个列,使用:

(df1,选择= c子集(名称、用法))

名称的使用

1P1One hundred.

2P2150年

3T1200年

4T2250年

选择列值满足条件,使用:

子集(df1,选择= c(名称、用法),子集=(使用> 150))

名称的使用

3T1200年

4T2250年

排除一个或多个列,选择使用否定值参数:

子集(df1,选择= - name)

类型的使用

1食物One hundred.

2食物150年

3 TCOD200年

4 TCOD250年

子集(df1,选择= - c(类型、使用))

的名字

1P1

2P2

3T1

4T2

替换数据帧的元素

数据帧的元素可能取代使用赋值运算符如下:

名称< - c (“PROG1”、“PROG2”,“TCOD1”、“TCOD2”)

使用< c (200, 250, 200, 250)

df1[1] < -名字

df1(“使用”)< -用法

df1 [1,3] < - 999

df1

名字类型的使用

1 PROG1掠夺999年

2 PROG2掠夺250年

3 TCOD1 TCOD200年

4 TCOD2 TCOD250年

将函数应用到数据帧

聚合函数可能被应用到数据帧列如下:

sum (df1["使用"])

[1]1699

意思是(unlist (df1 [3]))

[1]424.75

在本例中,返回的列表数据帧之前被转换为一个向量计算均值。

is.na()函数可以用来替换所有NA (null)值在0的数据帧。

OLD_NAME < - c (“PROG1”、“PROG2”、“TCOD1”、“TCOD2”)

OLD_TYPE < - c(“掠夺”,“掠夺”,“TCOD”、“TCOD”)

OLD_USAGE < - c (100 NA NA, 150)

df2 < - data.frame (OLD_NAME、OLD_TYPE OLD_USAGE)

df2

OLD_NAME OLD_TYPE OLD_USAGE

1PROG1掠夺One hundred.

2PROG2掠夺NA

3TCOD1TCODNA

4TCOD2TCOD150年

df2 [is.na (df2)] < - 0

df2

OLD_NAME OLD_TYPE OLD_USAGE

1PROG1掠夺One hundred.

2PROG2掠夺0

3TCOD1TCOD0

4TCOD2TCOD150年

mget()函数

mget()函数返回的值命名对象列表。这个函数可以用来返回一个列表的列向量向量的列名称。例如:

名称< - c (“PROG1”、“PROG2”,“TCOD1”)

< - c类型(“掠夺”,“掠夺”,“TCOD”)

列< - c(“名称”、“类型”)

mget(列)

美元的名字

[1]“PROG1”“PROG2”“TCOD1”

美元的类型

[1]“掠夺”“掠夺”“TCOD”

执行R行动提供的名单列在表1表可以作为一个向量命名Table1_col_names_,向量和每一列的值存储在名为Table1_ <列名称>。源表可以分配给一个列表中使用以下:

< - mget列表(Table1_col_names_)

将列添加到数据帧

添加一个列到数据帧包含适当数量的元素创建一个向量,并分配一个新列向量:

账户< - c (USER1、USER2,“USER3”、“USER4”)

df1(“帐户”)< -账户

df1

名字类型使用账户

1 PROG1掠夺999年USER1

2 PROG2掠夺250年USER2

3 TCOD1 TCOD200年USER3

4 TCOD2 TCOD250年USER4

另外,使用$符如下:

影响< - c (“R”、“c”、“c”,“R”)

df1 < -影响美元的影响

df1

名字类型使用账户的影响

1 PROG1掠夺999年USER1R

2 PROG2掠夺250年USER2C

3 TCOD1 TCOD200年USER3C

4 TCOD2 TCOD250年USER4R

返回的向量colnames()函数(包括新添加的列:

colnames (df1)

[1]“名称”“类型”“使用”“帐户”“影响”

数据帧可能附加水平使用cbind()函数如下。这两个数据帧必须有相同数量的行

df2 df3 < - cbind (df1)

df3

名字类型使用账户影响OLD_NAME OLD_TYPE OLD_USAGE

1 PROG1掠夺999年USER1RPROG1掠夺One hundred.

2 PROG2掠夺250年USER2CPROG2掠夺0

3 TCOD1 TCOD200年USER3CTCOD1TCOD0

4 TCOD2 TCOD250年USER4RTCOD2TCOD150年

将行添加到数据帧

添加一行数据帧,将行存储在一个新的数据帧,然后使用rbind()函数如下:

行< - data.frame (“TCOD3”、“TCOD”, 400年,“USER5”、“R”)

colnames(行)< - c(“名称”、“类型”、“使用”、“账户”,“影响”)

df1 < - rbind (df1行)

df1

名字类型使用账户的影响

1 PROG1掠夺999年USER1R

2 PROG2掠夺250年USER2C

3 TCOD1 TCOD200年USER3C

4 TCOD2 TCOD250年USER4R

5 TCOD3 TCOD400年USER5R

数据帧可能附加垂直使用rbind()函数如下。两个数据帧必须具有相同的列名称。

OLD_NAME < - c (“FUNC1”、“FUNC2”)

OLD_TYPE < - c(“函数”、“函数”)

OLD_USAGE < - c (100、150)

df4 < - data.frame (OLD_NAME、OLD_TYPE OLD_USAGE)

df5 < - rbind (df2 df4)

df5

OLD_NAME OLD_TYPE OLD_USAGE

1PROG1掠夺One hundred.

2PROG2掠夺0

3TCOD1TCOD0

4TCOD2TCOD150年

5FUNC1函数One hundred.

6FUNC2函数150年

R数据类型