将大列表转换为 R 中的数据框
在本文中,我们将讨论如何转换 大名单到 R 编程语言中的数据帧。
方法 1:使用 rbindlist()
首先,创建一个大列表。然后在列表上使用Map函数并使用 R 中的as.data.frame函数将其转换为数据帧。 map函数应用一个函数并将给定的输入转换为列表或向量的每个元素。我们将在地图中使用 as.data.frame函数将给定列表的每个元素转换为数据帧。
将列表的每个元素映射并转换为数据帧后,下一步是获取整个大列表,并使用 R 中的rbindlist函数将其转换为数据表或数据帧。
Syntax :
rbindlist( l, fill = FALSE, use.names = “check”, idcol = NULL)
Parameters :
- l : This is a list of data.table or data.frame or list objects.
- fill : This is false by default. If we specify this as true, then it automatically fills the missing columns with NAs.
- use.names : By default, it is specified as check which implies all the elements may not have same names in the same order. If it is specified as true, then we bind by matching column names and if false, then we bind by matching positions.
- idcol : It basically creates a column in the result, displaying which list item those particular rows came from.
您还可以使用system.time ()函数来计算转换所用的时间。
示例:使用 rbindlist() 方法将大列表转换为数据框
R
library(Matrix)
library(data.table)
# Creating the large list
data <- matrix(data = 1, nrow = 300, ncol = 3)
list_data <- rep(list(data), 18000)
# Mapping -> converting the list to
# dataframe
list_data <- Map(as.data.frame, list_data)
# Converting the large list to dataframe
# using the rbindlist function
datarbind <- rbindlist(list_data)
# Print the dataframe
datarbind
R
library(Matrix)
library(plyr)
# Creating the large list
data <- matrix(data = 1, nrow = 300, ncol = 3)
# Replicating the list
list_data <- rep(list(data), 18000)
ldply(list_data)
输出 :
方法二:使用plyr包
我们将使用' plyr '包的ldply ()函数。
Syntax: ldply(large_list)
Parameter:
large_list: pass your large list
导入所需的包,然后将要转换为数据帧的列表作为参数传递给ldply ()函数。
示例:使用 plyr 包将大列表转换为数据框
电阻
library(Matrix)
library(plyr)
# Creating the large list
data <- matrix(data = 1, nrow = 300, ncol = 3)
# Replicating the list
list_data <- rep(list(data), 18000)
ldply(list_data)
输出:
1 2 3
1 1 1 1
2 1 1 1
3 1 1 1
4 1 1 1
5 1 1 1
6 1 1 1
7 1 1 1
8 1 1 1
9 1 1 1
10 1 1 1
11 1 1 1
12 1 1 1
13 1 1 1
14 1 1 1
15 1 1 1
16 1 1 1
17 1 1 1
18 1 1 1
.
.
.