R语言 将大的R数据框架分割成小的数据框架列表
在这篇文章中,我们将讨论如何将一个大的R数据帧分割成小的数据帧列表。在R编程语言中,我们有一个名为split()的函数,用于将数据帧分割成若干部分。
因此,为了做到这一点,我们首先创建一个需要分割的数据框架的例子。
创建数据框
# create the data frame
data <- data.frame(id = c("X", "Y", "Z", "X", "X",
"X", "Y", "Y", "Z", "X"),
x1 = 11 : 20,
x2 = 110 : 110)
# print the dataframe
data
输出
为了分割上述数据框架,我们使用 split() 函数。split()函数的语法是。
语法: split(x, f, drop = FALSE, …)
参数
- x代表DataFrame和向量
- f代表向量的分组或选择我们分割数据框架的列
- drop代表删除或跳过指定的行
例1: 在这个例子中,我们尝试在没有任何参数的情况下运行分割函数,除了上述Dataframe。
当我们在没有任何参数(除了Dataframe)的情况下运行分割函数时,我们注意到分割函数返回第1列的每个元素与其他列的组合。在我们的例子中,第1列中有3个不同的元素,数据框架中总共有10行。因此,输出的总行数为3*10=30行。
# create the data frame
data <- data.frame(a1 = c("X", "Y", "Z", "X", "X",
"X", "Y", "Y", "Z", "X"),
a2 = 11 : 20,
a3 = 110 : 110)
# split the dataframe using the
# split function
split_data <- split(data, f = data)
# print the splitted data frame
split_data
输出
注意: 上面的输出截图是实际输出的1/3,由于简洁,我们不能插入 完整的输出截图 。
例2: 在这个例子中,我们将在1列的帮助下通过分组来分割数据框架。
要做到这一点,我们将使用分割函数的 “f “参数,”$”用于选择我们要分割数据框架的列。在我们的例子中,我们将根据a1列来分割数据框架。
# create the data frame
data <- data.frame(a1 = c("X", "Y", "Z", "X", "X",
"X", "Y", "Y", "Z", "X"),
a2 = 11 : 20,
a3 = 110 : 110)
# split the data frame by grouping using "f" argument
split_data <- split(data, f = data$a1)
# print the split data
split_data
输出
例3: 在这个例子中,我们将在两列的帮助下通过分组来分割数据框架。
要做到这一点,我们将使用split函数的 “f “参数,”$”用于选择列并生成一个列的列表,我们将根据这个列表来分割Dataframe。在我们的例子中,我们将根据a1和a2列来分割Dataframe。因此,我们创建了一个a1和a2的列表,这个列表被作为参数给 “f”。
# create the data frame
data <- data.frame(a1 = c("X", "Y", "Z", "X", "X",
"X", "Y", "Y", "Z", "X"),
a2 = c(1, 1, 1, 2, 2, 2,
1, 2, 1, 2),
a3 = 110 : 110)
# split the data frame by grouping using "f" argument
split_data <- split(data, f=list(dataa1, dataa2))
# print the split data
split_data
输出