将保持第一列的数据帧转换为标题

问题描述 投票:22回答:3

我有一个很大的数据帧,但小例子是这样的:

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

我想转置数据帧并将列1(A)保持为列标题(字母[1:10])作为变量名称。以下是不成功代码的临时试验。

tmydf = data.frame(t(mydf))
names(tmydf) <- tmydf[1,]

谢谢;

r dataframe transpose
3个回答
47
投票

这是一种方式

tmydf = setNames(data.frame(t(mydf[,-1])), mydf[,1])

6
投票

也许这样的东西:

tmp <- as.data.frame(t(mydf[,-1]))
> colnames(tmp) <- mydf$A
> tmp
    a  b  c  d  e  f  g  h  i  j
M1 11 12 13 14 15 16 17 18 19 20
M2 31 32 33 34 35 36 37 38 39 40
M3 41 42 43 44 45 46 47 48 49 50

1
投票

来自Ramnath的Data.table variante,在字符串中指示变量名称。

mydf <- data.table(A = c(letters[1:10]), M1 = c(11:20), M2 = c(31:40), M3 = c(41:50))
tmydf <- setNames(data.table(t(mydf[,-"A"])), mydf[["A"]])
© www.soinside.com 2019 - 2024. All rights reserved.