在这个简短的教程中,你将学习如何在R中把一个列表转换为一个数据框架。知道如何把列表转换为数据框架可能是有用的,例如,当你从一个来源获得你的数据,并且它们最终成为一个列表,例如向量。这里有一个代码模板的例子,你可以用它来把R中的向量列表转换成数据帧。
# Converting list to dataframe in R
DF <- as.data.frame(YourList)
Code language: R (r)
在下一节中,你将了解到本篇文章的大纲概况。
大纲
本篇文章的大纲如下。首先,你将得到一些信息,了解你在学习本教程时需要什么。首先,你将得到创建实例数据,以便在本帖的其余部分使用。第三,我们将看一下在R中把列表转换为数据帧的第一个例子。第四,你将通过第二个例子学习如何把列表转换为数据帧。现在,我们还将看一下如何使用do.call 函数。这样做可以使行变成列。这里可能值得指出的是,这也可以用t函数来完成。更多信息请参见 "如何使用t()函数在R中对数据框架或矩阵进行移位"一文。在最后一个例子中,你将学习如何使用Tidyverse将一个列表变成一个数据框架。
要求
要学习这篇文章和所有的例子,你需要有:1)一个工作的R安装,2)作为Tidyverse软件包一部分的dplyr软件包。另一方面,如果你只想知道如何从一个列表中创建一个数据框架,你可以坚持使用基本的R。然而,值得指出的是,dplyr可以用来在R中向数据框架中添加一个列,删除重复的,并计算一个列中出现的数量。
在下一个例子中,我们将使用一些基础R函数创建一些样本数据。
示例数据
下面是我们如何创建一个包含几个向量的列表。
Data <- list(A = seq(1,4),
B = c("A", "D", "G", "L"),
C = c("Best", "List", "Dataframe", "Rstats"))
Code language: R (r)
我们也可以像这样显示我们的列表(和向量)。
Data
Code language: R (r)
在上面的两个代码块中,我们使用list() 函数和两个函数一起,首先创建了名为Data 的列表。这里我们使用了R中的c和seq来生成向量。此外,我们将列表中的不同向量命名为A、B和C。最后,我们使用列表的名称(即Data)打印了该列表。这就是生成的列表。
在下一节,你将学习如何将列表转换为数据帧。
例1:在R中把列表转换为数据框架
在第一个例子中,我们将使用R的as.data.frame()函数来将列表转换为数据框架。
dataFrame <- as.data.frame(Data)
dataFrame
Code language: R (r)
在上面的代码块中,我们简单地使用了上述的函数,将列表作为第一个参数。下面是我们从列表中生成的数据框架。
在下一个例子中,我们将在将列表转换为数据框架时设置列名,如果你的数据存储在矩阵中,那么就可以在R中将矩阵转换为数据框架。
例2:在R中把列表转换为数据框架并改变列名
下面是我们如何简单地添加col.names参数来改变列名。
dataFrame <- as.data.frame(Data,
col.names = c("Numbers", "Letters", "Words"))
dataFrame
Code language: R (r)
值得注意的是,也可以通过使用row.names参数来命名行。但是,如果你有大量的观察值/数据点,这可能不可行。在下一个例子中,我们将看看如何使用do.call函数来完成同样的工作,但同时也使行成为列。
例3:使用do.call函数将R中的列表转换为数据框架
在这个例子中,你将学习如何使用as.data.frame 函数、cbind 和do.call 函数将一个列表转换为 R 中的数据框架。这里有一个代码片段。
as.data.frame(do.call(cbind, Data))
Code language: R (r)
正如你所看到的,在上面的代码块中,我们用do.call 函数作为cas.data.frame 函数的参数。此外,我们使用了cbind 函数,最后,我们想要转换的列表作为最后一个参数。这将创建一个与前面类似的数据框架。现在,你可能想知道为什么我们要做这样的事情。好吧,我们可以使用rbind 函数,而不是cbind 函数。这将给我们带来这样的结果。
在下一个,也是最后一个例子中,我们将使用dplyr在R中把一个列表转换为一个数据框架。
例4:用dplyr将列表转换为数据框架
下面是我们如何使用dplyr在R中把一个列表转换为数据框架。
library(dplyr)
dataFrame <- Data %>%
as_tibble()
dataFrame
Code language: R (r)
在上面的代码块中,有一些新的东西被引入。首先,我们使用了管道操作符(%>%)。在这个运算符之后,我们使用了as_tibble 函数。这个代码块将创建一个名为dataFrame 的数据框架,通过获取列表(Data)并将其作为参数放到as_tibble 函数中。也就是说,我们需要将输入/参数(即列表中的数据)留给管道操作符。
结论
在这篇文章中,你已经学会了如何在R中把列表转换为数据框架。更具体地说,你通过4个例子学会了如何做到这一点。首先,我们开始在一个示例列表上使用 as.data.frame 函数。第二,当我们转换列表时,我们使用as.data.frame函数的一个参数改变了列名。第三,我们还看了一下如何使用do.call函数。在最后一个例子中,我们使用了流行的Tidyverse包中的dplyr包。总而言之,在R中把列表转换为数据框架的最简单方法是使用as.data.frame函数或dplyr的as_tibble函数。希望你能学到有价值的东西。如果你做到了,请在下面留言,并在你的社交媒体账户上分享这些帖子。




