【发布时间】:2018-07-15 11:42:17
【问题描述】:
我想将矩阵转换为数据框。当我使用
df <- mat %>% data.frame()
我丢失了行名。我该如何保留它们?
【问题讨论】:
-
试试
mat %>% as.data.frame %>% cbind(rn = row.names(mat), .)BTW,data.frame保持行名不变。如果你使用data_frame,它会去掉那些。 -
我无法重现该问题:
mat <- matrix(1:10, nrow = 2, dimnames = list(letters[1:2], letters[1:5])); data.frame(mat)对我来说很好 -
@akrun - cbind 不会再次将其全部转换回矩阵吗?我认为只需要
as.data.frame(mat) -
@dww 它不会'因为
cbind正在使用行名对data.frame 进行cbind,在这里它调度cbind.data.frame我建议它以防OP 使用tidyverse 执行此类操作行名将在此过程中丢失 -
@user42485 您可以在这里查看区别
as.data.frame(mat, ind = 5)和data.frame(mat, ind = 5)前者不会创建新列
标签: r dataframe matrix rowname