2

データは次のとおりです。

myd <- data.frame (var1.1 = rnorm (10, 5,2), var1.2 = rnorm (10, 3,1),
                   varA.1 = rnorm (10, 5,2), varA.2 = rnorm (10,1,2), 
                    C.1 = rnorm (10, 3,1), C.2 = rnorm (10, 4,1))

サイズ3のリストを作成したい(nがデータフレーム内の変数の数である場合はn / 2)(それぞれ2列)

mylist <- as.list (myd)

各変数をコンポーネントとしてリストを作成します。しかし、変数のペアのリストを1つのユニット(var1.1とvar1.2、同様にvarA.1とvarA.2、またはC.1とC.2)に作成したいと思います。したがって、新しいリストユニットにはそれぞれ2つの列があります。解決策はありますか?

4

1 に答える 1

4

私はこれがあなたが望むものをあなたに与えると思います:

lapply(seq(2, ncol(myd), by = 2), function(i) myd[, (i-1):i])

ここで、リスト内の各要素にデータフレームの共有変数名で名前を付けたいとしましょう。

X <- lapply(seq(2, ncol(myd), by = 2), function(i) myd[, (i-1):i])
names(X) <- sapply(X, function(x){
    strsplit(names(x)[1], '\\.')[[c(1, 1)]]
})
X
于 2012-07-28T14:33:31.377 に答える