0

私はこのようなリストを持っています

A <- data.frame(a = c(1, 2), b = c(3, 4))
B <- data.frame(c = c(1, 2), d = c(3, 4))
g <- list(var1 = A, var2 = B)

生産

> g
$var1
  a b
1 1 3
2 2 4

$var2
  c d
1 1 3
2 2 4

今、私はこのようなリスト要素を転置したいと思います

lapply(g, function(x) data.frame(t(x)))

しかし、これは私が望むものではない行名としてa、b、cdを生成します

> lapply(g, function(x) data.frame(t(x)))
$var1
  X1 X2
a  1  2
b  3  4

$var2
  X1 X2
c  1  2
d  3  4

これらのdata.framesに、a、b、c、およびdの新しい列を生成したいと思います。これを達成する方法は?

4

1 に答える 1

1

ポイント1:データを転置する場合は、data.framesではなく配列を使用する必要があることを意味します。

ただし、これが本当にやりたいことである場合cbind()は、列名を入力してください。

lapply(g, function(x) as.data.frame(cbind(colnames(x), t(x))))
$var1
  V1 V2 V3
a  a  1  2
b  b  3  4

$var2
  V1 V2 V3
c  c  1  2
d  d  3  4
于 2012-05-30T11:41:09.887 に答える