本文介绍了如何在dydyverse中转置数据帧?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用基本R,我可以转置一个数据框,例如 mtcars ,它具有相同类的所有列:

Using basic R, I can transpose a dataframe, say mtcars, which has all columns of the same class:

as.data.frame(t(mtcars))

或使用管道:

library(magrittr)
mtcars %>% t %>% as.data.frame

如何在tidyr或tidyverse包中实现相同的功能?

How to accomplish the same within tidyr or tidyverse packages?

我在下面的尝试给出:



library(tidyverse)
mtcars %>% gather(var, value, everything()) %>% spread(var, value)


推荐答案

尝试使用 add_rownames

add_rownames(mtcars) %>%
         gather(var, value, -rowname) %>%
         spread(rowname, value)

较新的版本, rownames_to_column 替换了 add_rownames

mtcars %>%
   rownames_to_column %>%
   gather(var, value, -rowname) %>%
   spread(rowname, value)

在更新的版本中, pivot_wider 替换了点差

In the even newer version, pivot_wider replaces spread:

mtcars %>%
   tibble::rownames_to_column() %>%
   pivot_longer(-rowname) %>%
   pivot_wider(names_from=rowname, values_from=value)

这篇关于如何在dydyverse中转置数据帧?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-11 16:23