R 语言数据框介绍

数据框可能是你在分析中最常使用的数据结构。数据框是一种特殊的列表,用于存储不同类的相同长度的向量。你可以使用 data.frame 函数创建数据框。下面的示例通过将数字和字符向量组合到数据框中来显示这一点。它使用:运算符,它将创建一个包含从 1 到 3 的所有整数的向量。

df1 <- data.frame(x = 1:3, y = c("a", "b", "c"))
df1
##   x y
## 1 1 a
## 2 2 b
## 3 3 c
class(df1)
## [1] "data.frame"

数据框对象不使用引号进行打印,因此列的类并不总是很明显。

df2 <- data.frame(x = c("1", "2", "3"), y = c("a", "b", "c"))
df2
##   x y
## 1 1 a
## 2 2 b
## 3 3 c

没有进一步调查,df1df2 中的 x 列无法区分。str 函数可用于描述比类更详细的对象。

str(df1)
## 'data.frame':    3 obs. of  2 variables:
##  $ x: int  1 2 3
##  $ y: Factor w/ 3 levels "a","b","c": 1 2 3
str(df2)
## 'data.frame':    3 obs. of  2 variables:
##  $ x: Factor w/ 3 levels "1","2","3": 1 2 3
##  $ y: Factor w/ 3 levels "a","b","c": 1 2 3

在这里你可以看到 df1 是一个 data.frame 并且有 3 个观察 2 个变量,xy。然后你被告知 x 的数据类型为整数(对于这个类来说并不重要,但对于我们的目的,它的行为类似于数字),y 是一个有三个级别的因子(我们没有讨论的另一个数据类)。***重要的是要注意,默认情况下,数据帧会将字符强制转换为因子。***可以使用 stringsAsFactors 参数更改默认行为:

df3 <- data.frame(x = 1:3, y = c("a", "b", "c"), stringsAsFactors = FALSE)
str(df3)
## 'data.frame':    3 obs. of  2 variables:
##  $ x: int  1 2 3
##  $ y: chr  "a" "b" "c"

现在 y 列是一个字符。如上所述,数据帧的每个必须具有相同的长度。尝试从具有不同长度的向量创建 data.frame 将导致错误。 (尝试运行 data.frame(x = 1:3, y = 1:4) 以查看生成的错误。)

作为数据帧的测试用例,默认情况下由 R 提供一些数据。其中一个是虹膜,装载如下:

mydataframe <- iris
str(mydataframe)