【发布时间】:2017-03-11 10:00:36
【问题描述】:
使用基本的 R,我可以转置一个数据帧,比如 mtcars,它具有同一类的所有列:
as.data.frame(t(mtcars))
或者用管道:
library(magrittr)
mtcars %>% t %>% as.data.frame
如何在 tidyr 或 tidyverse 包中实现相同的功能?
我在下面的尝试给出了:
错误:行标识符重复
library(tidyverse)
mtcars %>% gather(var, value, everything()) %>% spread(var, value)
【问题讨论】:
-
如果你想转置它应该是一个矩阵而不是一个data.frame。使用
t有什么问题? -
试试
add_rownames(mtcars) %>% gather(var, value, -rowname) %>% spread(rowname, value) -
为什么要这样做?您无法在不丢失信息的情况下有意义地转置包含许多变量类的 data.frame。
-
一个数据框,例如 mtcars,可能有相同类的所有列。
标签: r dataframe transpose tidyr tidyverse