R 在 matriggr 管道中从矩阵创建数据帧时给出列名称

Eul*_*ter 2 r dplyr tidyr

假设我有这个矩阵

m <- matrix(1:9, 3, 3)
Run Code Online (Sandbox Code Playgroud)

看起来像这样

     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
Run Code Online (Sandbox Code Playgroud)

我想将此矩阵放入具有特定列名称的数据框中。例如

col_names <- c("col1", "col2", "col3")
Run Code Online (Sandbox Code Playgroud)

创建数据框时是否有一种简单的方法来给出这些列名称?

我的暂定解决方案

# This is how I want to create the data frame
df <- data.frame(m)
Run Code Online (Sandbox Code Playgroud)

我希望我能说一些类似的话col.names=col_names。我尝试使用renamefrom 的函数dplyr,但无法使其在一行中工作

m %>% data.frame %>% {rename(., col_names=names(.))}

Run Code Online (Sandbox Code Playgroud)

问题是它不允许我将向量解包为我认为的参数。有没有更好的办法?

重要的是:我想在创作时给出这些名字。不在新行中。可能,它应该发生在管道中

Nat*_*rth 6

要准确回答您的问题,请使用setNames

m %>% data.frame() %>% setNames(col_names)
Run Code Online (Sandbox Code Playgroud)

然而,这是一个“单行代码”,就像嵌套函数调用是单行代码一样。