问题
Using basic R, I can transpose a dataframe, say mtcars
, which has all columns of the same class:
as.data.frame(t(mtcars))
Or with pipes:
library(magrittr)
mtcars %>% t %>% as.data.frame
How to accomplish the same within tidyr or tidyverse packages?
My attempt below gives:
Error: Duplicate identifiers for rows
library(tidyverse)
mtcars %>% gather(var, value, everything()) %>% spread(var, value)
回答1:
Try with add_rownames
add_rownames(mtcars) %>%
gather(var, value, -rowname) %>%
spread(rowname, value)
In the newer version, rownames_to_column
replaces add_rownames
mtcars %>%
rownames_to_column %>%
gather(var, value, -rowname) %>%
spread(rowname, value)
来源:https://stackoverflow.com/questions/40306280/how-to-transpose-a-dataframe-in-tidyverse