當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


R List轉Dataframe用法及代碼示例

我們有一個值列表,如果我們想將列表轉換為其中的 DataFrame ,我們可以使用 as.data.frame。它將每個值的列表轉換為 DataFrame 。 DataFrame是一個二維表格數據結構,可以存儲不同類型的數據。各種函數和包,例如data.frame(),as.data.frame(),以及dplyr 包,可以用來實現這種轉換。在本文中,我們將討論如何將列表轉換為 DataFrame 及其工作示例R 編程語言.

R 中的 DataFrame

R 中的數據幀語言是 R 的通用數據對象,用於存儲表格數據。 DataFrame 也可以解釋為矩陣,其中的每一列矩陣可以是不同的數據類型。 R DataFrame 由三個主要組件組成:數據、行和列。

R 中的列表

A 列表是一個向量,但具有異構數據元素。一個列表在 R 使用list()函數創建。 R 允許使用索引值訪問 R 列表的元素。在 R 中,列表的索引從 1 開始,而不是像其他編程語言一樣從 0 開始。

用法:

# Create a list with named elements

my_list <- list(element1 = vector1, element2 = vector2, …)

# Convert the list to a dataframe

my_dataframe <- as.data.frame(my_list)

as.data.frame函數獲取列表‘my_list’並將其直接轉換為數據幀,從而產生相同的結構化輸出。

使用列表創建 DataFrame

R


my_list <- list(names = c("Alice", "Bob", "Carol"),
                ages = c(25, 30, 28))
my_dataframe <- as.data.frame(my_list)
print(my_dataframe)

輸出:

 names ages
1 Alice 25
2 Bob 30
3 Carol 28

  • 我們首先創建一個名為 my_list 的列表,其中包含兩個命名元素:“names” 和 “ages.” “names” 元素包含表示名稱的字符值,“ages” 元素包含表示年齡的數值。
  • as.data.frame 函數獲取列表 my_list 並將其直接轉換為數據幀,從而產生相同的結構化輸出。
  • 然後,我們使用 as.data.frame() 函數將 my_list 轉換為數據幀。這會產生一個包含兩列的 DataFrame :“names” 和 “ages.”
  • 最後,我們打印結果 DataFrame 。輸出以表格形式顯示數據,其中每一行代表一個人的姓名和年齡。

將矩陣組合成列表並將它們轉換成 DataFrame

R


matrix1 <- matrix(1:4, nrow = 2)
matrix2 <- matrix(5:8, nrow = 2)
matrix_list <- list(matrix1, matrix2)
matrix_dataframe <- as.data.frame(matrix_list)
print(matrix_dataframe)

輸出:

 X1 X2 X1.1 X2.1
1 1 3 5 7
2 2 4 6 8

  • 首先,創建兩個矩陣,矩陣 1 和矩陣 2,每個矩陣包含一組值。在這個例子中,它們都是 2×2 矩陣。
  • 接下來,創建一個名為matrix_list的列表,並將矩陣matrix1和matrix2添加到該列表中。該列表將用於存儲多個矩陣。
  • 轉換列表矩陣進入數據幀,使用as.data.frame函數。將 matrix_list 作為參數傳遞給該函數。
  • 最後,打印結果matrix_dataframe,它現在是一個包含原始矩陣數據的數據幀。

使用 do.call() 從列表創建 DataFrame

R


# Sample list
my_list <- list(
  StudentID = c(101, 102, 103, 104),
  FirstName = c("Alice", "Bob", "Charlie", "David"),
  LastName = c("Smith", "Johnson", "Brown", "Lee"),
  Score = c(95, 88, 75, 92)
)
# Convert the list to a dataframe
my_dataframe <- do.call(data.frame, my_list)
# Print the resulting dataframe
print(my_dataframe)

輸出:

  StudentID FirstName LastName Score
1 101 Alice Smith 95
2 102 Bob Johnson 88
3 103 Charlie Brown 75
4 104 David Lee 92

The do.call function is used to apply the data.frame constructor to the elements of my_list, effectively converting the list into a dataframe.

在此示例中,我們有一個名為 ‘my_list’ 的列表,其中包含有關學生的信息,包括他們的 StudentID、FirstName、LastName 和 Score。代碼使用do.call將此列表轉換為名為my_dataframe的數據幀。生成的 DataFrame 將具有與列表元素相對應的列,並且數據將相應地填充。

  • ‘my_list’ 被定義為包含四個組成部分的列表:StudentID、FirstName、LastName 和 Score。這些組件中的每一個都是包含數據的向量。
  • do.call 用於將‘my_list’ 轉換為數據幀。它本質上將data.frame 函數應用於my_list 的元素。這將創建一個名為my_dataframe 的數據幀。

結論

總之,將列表轉換為數據幀是 R 中的一項常見任務,通過“as.data.frame()”、“data.frame()”和“do.call()”等方法來促進。數據幀是用於高效的數據存儲和操作。熟練掌握此轉換過程使數據分析師和研究人員能夠簡化數據處理、可視化和分析任務,從而促進有價值的見解和decision-making。



相關用法


注:本文由純淨天空篩選整理自anjugaeu01大神的英文原創作品 How to Convert a List to a Dataframe in R。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。