这是我的数据框:
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)
尝试这个:
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)