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
没有进一步调查,df1
和 df2
中的 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 个变量,x
和 y
。然后你被告知 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)