首页 > 解决方案 > 如何使用 tidyverse 向带有管道的数据框添加行?

问题描述

例子

考虑这个数据框

 abc
 efg
 hij

(abc 是列)

我想把它转换成

 X
 abc
 efg
 hij

X 现在是主列名,abc 在值中

我试过这个

 df %>% mutate(X = abc)

这把它变成

X
efg
hij

随着 abc 消失

标签: rtidyverse

解决方案


如果您有多个列,您可以执行以下操作:

library(dplyr)

names(df) %>%
  t %>%
  as.data.frame() %>%
  setNames(names(df)) %>%
  bind_rows(df) %>%
  rename_all(~LETTERS[seq_len(ncol(df))])

#    A
#1 abc
#2 efg
#3 hij

对于只有一列,它可以简化一点。

names(df) %>%
  setNames(names(df)) %>%
  bind_rows(df) %>%
  rename(X = abc)

#  X    
# <chr>
#1 abc  
#2 efg  
#3 hij  

推荐阅读