34

私は大きなデータフレームを持っていますが、小さな例は次のようになります:

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,]

ありがとう;

4

5 に答える 5

71

これが1つの方法です

tmydf = setNames(data.frame(t(mydf[,-1])), mydf[,1])
于 2011-11-01T17:22:33.843 に答える
9

おそらくこのようなもの:

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
于 2011-11-01T17:20:46.217 に答える
2

/パイプを使用janitor::row_to_names()するもう 1 つの方法dplyrmagrittr

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


library(janitor, warn.conflicts = F)
library(dplyr, warn.conflicts = F)
mydf %>% t %>% as.data.frame() %>% row_to_names(1)

#>     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

reprex パッケージ(v2.0.0)により 2021-06-17 に作成

于 2021-06-17T14:03:46.353 に答える