将第一行作为我的数据框的列名,在 R 中使用 dplyr

Lin*_*man 5 r dplyr

这是我的数据框:

x<-data.frame(A = c(letters[1:10]), M1 = c(11:20), M2 = c(31:40), M3 = c(41:50))

colnames(x)<-NULL
Run Code Online (Sandbox Code Playgroud)

我想转置 ( t(x)) 并将 x 的第一列视为新数据框的列名t(x)

此外,我需要将它们(的列名t(x))标识为单词/字母(作为字符,对吗?)

是否可以使用 dplyr 包来做到这一点?

有什么帮助吗?

小智 14

{janitor} 包对此很有用,并且足够灵活,能够选择任何行来推送到列名称:


library(tidyverse)
library(janitor)

x <- x %>% row_to_names(row_number = 1)
Run Code Online (Sandbox Code Playgroud)


jsb*_*jsb 3

尝试这个:

library(dplyr)
library(tidyr)

x <- data.frame(
  A = c(letters[1:10]),
  M1 = c(11:20),
  M2 = c(31:40),
  M3 = c(41:50))

x %>% 
  gather(key = key, value = value, 2:ncol(x)) %>% 
  spread(key = names(x)[1], value = "value")
  key  a  b  c  d  e  f  g  h  i  j
1  M1 11 12 13 14 15 16 17 18 19 20
2  M2 31 32 33 34 35 36 37 38 39 40
3  M3 41 42 43 44 45 46 47 48 49 50
Run Code Online (Sandbox Code Playgroud)