在 R 中创建大型数据框
Jinku Hu
2023年1月30日
本文将解释在 R 中创建大型数据框的几种方法。
在 R 中使用向量和因子创建数据框
数据框是 R 语言最强大的内置数据结构,它类似于表格矩阵,其中每一列的长度相同,并且它们必须有名称。但是,在下面,它具有更多类似列表
的功能,因为数据框的每一列都被视为列表
数据结构的一个元素。从好的方面来说,我们可以使用向量和因子的混合构造一个数据框,如下面的代码片段所示。我们使用 data.frame
函数从向量和因子构建一个数据框对象。
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
v3 <- c(1, 2, 3, 1, 2, 3)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri"))
df2 <- data.frame(v1, v2, v3, wday)
输出:
v1 v2 v3 wday
1 1.1 11 1 Wed
2 1.2 12 2 Thu
3 1.3 13 3 Mon
4 2.1 21 1 Wed
5 2.2 22 2 Thu
6 2.3 23 3 Fri
在 R 中使用 List 创建数据框
或者,可以使用列表对象创建数据框对象。虽然,此方法需要一个名为 as.data.frame
的不同函数,它将单个列表对象转换为数据框。请注意,我们在下面的示例中使用 list
函数构造列表对象,并将调用作为 as.data.frame
的参数链接。由于数据框必须具有列标签,因此如果用户未指定它们,通常会自动选择它们。如果在转换过程中选择了不需要的名称,则始终可以调用 colnames
函数并为其分配一个列名称向量。
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
v3 <- c(1, 2, 3, 1, 2, 3)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri"))
df1 <- as.data.frame(list(v1, v2, v3, wday))
colnames(df1) <- c("v1", "v2", "v3", "wday")
df1
输出:
v1 v2 v3 wday
1 1.1 11 1 Wed
2 1.2 12 2 Thu
3 1.3 13 3 Mon
4 2.1 21 1 Wed
5 2.2 22 2 Thu
6 2.3 23 3 Fri
在 R 中使用矩阵创建数据框
有时,需要大量的数据帧分配,用向量或列表进行初始化是不切实际的。幸运的是,matrix
函数提供了一种通过指定行/列号来构建大型数据框的简单快捷的方法。或者,可以使用作为第一个参数传递的向量来初始化数据帧中的值。否则,元素将具有 NA
值。
m1 <- matrix(1:1000, ncol = 10, nrow = 100)
df1 <- as.data.frame(m1)
df1
输出:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 1 101 201 301 401 501 601 701 801 901
2 2 102 202 302 402 502 602 702 802 902
....
作者: Jinku Hu