在这个简短的教程中,你将学习如何在R中把矩阵 转换为数据框架 。具体来说,你将学习如何使用基础R和软件包tibble来把矩阵转换为数据框架。你将通过4个不同的例子(每种方法各2个)来学习这项任务。
概要
这篇文章的结构如下。首先,你将简要了解tibble和如何安装这个R包。之后,你将得到 "我如何在R中把矩阵转换为数据帧 "的答案。在下一节中,我们将创建一个简单的矩阵。接下来的部分,博文中,将在整个文章的不同例子中转换为数据框架。希望这些例子能加深你对R中矩阵转换的认识。
2种转换矩阵的方法
在第一个例子中,我们将使用基础R来转换矩阵。随后,在将矩阵转换为数据框架时,我们还将添加列名。
在第三个例子中,我们将使用tibble和函数as_tibble()
,将矩阵变为数据框架(即tibble对象)。最后,在将矩阵转换为数据框架时,我们也将使用tibble和setNames()
。在下一个例子中,你将学习如何安装tibble或Tidyverse。
安装tibble或Tidyverse
下面是我们如何安装tibble:
install.packages("tibble")
Code language: R (r)
像往常一样,我们使用install.packages()
,并在引号内写上软件包(即 "tible")。注意,我们可以安装Tidyverse包。这个包包含了tibble和其他有用的包。例如,我们可以使用Tidyverse包删除重复的内容,并重命名因子水平。此外,Tibble包可用于向数据框架添加空列,向数据框架添加新列,以及更多。
如何在R中把一个矩阵转换为数据框架?
要在R中把矩阵转换为数据框架,你可以使用as.data.frame()函数,例如,要把名为 "MX "的矩阵改为数据框架,你可以使用以下代码:df_m <- as.data.frame(mtx)
。
在下一节中,我们将使用matrix()
函数来创建一个矩阵。
数据实例
在我们把矩阵改为数据框架之前,我们需要创建一个矩阵。下面是我们如何使用matrix()
函数来创建一个矩阵。
mtx <- matrix(seq(1, 15), nrow = 5)
Code language: HTML, XML (xml)
在上面的代码中,我们使用seq()函数来生成一个数字序列(即从1到15)。此外,我们还创建了5行,使用nrow
参数。下面是生成的矩阵。
在下一节中,我们将看一下将我们创建的矩阵转换为数据框架的第一个例子。
例1:用Base R将矩阵转换为数据框架
在R语言中,要将矩阵转换为数据框架,我们可以使用as.data.frame()
函数。
df_mtx <- as.data.frame(mtx)
Code language: R (r)
在上面的代码中,我们只是用这个函数(即as.data.frame()
)从矩阵中创建一个数据框架。下面是转换后的数据框架。
将矩阵转换为数据框架
现在,我们已经将矩阵转换为数据框架,我们可以使用例如str()
函数来查看数据的结构。
你可以看到,在上面的输出中,我们有3列数据类型为整数。当然,这是预料之中的(我们创建了一个数字序列的矩阵)。注意我们的列名是如何从V1到V3的。这不是很有信息量,这里有很多选择。首先,我们可以在矩阵中(或在创建矩阵时)为列命名。第二,我们可以重新命名所创建的数据框架的列。在这篇文章中,我们将在转换完矩阵后改变列名。
例2:在R中将矩阵转换为数据框架并添加列名
现在,在转换矩阵后,使用as.data.frame()
函数,我们可以使用colnames()
函数。
df_mtx <- as.data.frame(mtx)
colnames(df_mtx) <- c("A", "B", "C")
Code language: JavaScript (javascript)
在上面的代码块中,我们使用了colnames()
函数并分配了一个字符向量。这个字符向量包含三个列名。这里是转换后的矩阵(即数据框架)。
在下一个例子中,我们将继续使用一个已安装的R包:Tibble,将列表转换为数据框。
例3:使用Tibble将R中的矩阵转换为数据框架
在本节中,你将学习如何使用另一个软件包将矩阵转换为数据帧:Tibble。下面是如何在R中使用Tibble将矩阵转换为数据帧。
library(tibble)
df_mtx <- mtx %>%
as_tibble()
Code language: HTML, XML (xml)
你可能注意到了,我们现在使用这个函数的方式有区别。我们没有像前两个例子那样在括号内加入矩阵,而是使用了管道操作符("%>%")。在管道操作符的左边,我们有矩阵,新的数据框架,而在右边我们使用了函数。下面是我们从矩阵中创建的数据框架。
现在,大多数情况下,我们希望有比本例中得到的更好的列名。如前所述,我们可以在创建矩阵时设置列名(和行名)。然而,如果我们已经有了一个没有名字的矩阵,但我们知道列名,我们可以使用setNames()函数和另一个管道。这就是我们将在最后一个例子中看到的情况。
例四:用Tibble和设置列名将矩阵转换为R中的数据框架
下面是我们如何将矩阵转换为数据框架并设置列名的方法。
df_mtx <- mtx %>%
as_tibble() %>%
setNames(c("A", "B", "C"))
Code language: JavaScript (javascript)
在上面的代码块中,我们使用了另一个管道(见例3),并添加了函数setNames()来添加列名 "A"、"B "和 "C"。下面是生成的数据框架。
如前所述,Tibble是Tidyverse的一部分,这意味着我们可以在创建数据框架后使用dplyr来重命名这些列。
总结
在这篇文章中,我们在R中把矩阵转换成了数据框架。更具体地说,我们通过4个不同的例子学习了如何执行这项任务。在前两个例子中,我们使用了基础R,而在最后两个例子中,我们将使用Tidyverse包Tibble。无论我们使用base R还是Tibble将矩阵转换为数据帧,我们都需要设置列名。也就是说,如果我们转换的矩阵没有列名。希望你在本教程中能学到有价值的东西。
如果你有什么想让我在博文中介绍的内容(例如,你需要学习的东西),请在下面留言。如果有任何建议或更正,也请在下面留言。