7

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

arg0 <- list(code = "a", n = rep(10, 3))

リスト内のオブジェクトの数は可変です。リストのオブジェクトはベクトルであり、1次元のオブジェクトのみです。

次のように、リストを1行のdata.frameに変換する手順を作成します。

> data.frame(code = "a", n.1 = 10, n.2 = 10, n.3 = 10)
  code n.1 n.2 n.3
1    a  10  10  10

私は現在この解決策を持っています:

a <- stack(arg0)
b <- data.frame(t(a[,1]))
names(b) <- a[,2]
b <- data.frame(b)

b私が達成したいほとんどの結果はどこにありますか?

> b
  code  n n.1 n.2
1    a 10  10  10

2つの質問:

  1. 結果を達成するためのよりエレガントな方法はありますか?
  2. 重複するcolnamesのような番号を取得する方法を知っていますc(n.1, n.2, n.3)か?
4

3 に答える 3

11

これは1つの方法です。

data.frame(t(unlist(arg0)))
#   code n1 n2 n3
# 1    a 10 10 10
于 2012-11-26T15:27:38.593 に答える
6

リストのオブジェクトのさまざまなデータ型を保持したい場合は、次のコマンドを使用できます。

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

出力:

  code n.1 n.2 n.3
x    a  10  10  10

2 列目から 4 列目の値はまだ数値です。

于 2012-11-26T15:43:45.603 に答える
3

転置されたリストされていないデータwrite.tableとの組み合わせを使用できます。read.tableテーブルを保持するための中間ステップとしてクリップボードを使用しました。

write.table(t(unlist(arg0)),"clipboard")
read.table("clipboard")
  code n1 n2 n3
1    a 10 10 10
于 2012-11-26T15:27:12.883 に答える