在 R 中建立大型資料框
本文將解釋在 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
....
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn