0

これは本当に単純なはずですが....

     a <- 5
     b <- 1:a
     c <- matrix(rnorm(30, 1), ncol = 5)
     out <- lapply(c,c[,i])

    Error in c[, i] : invalid subscript type 'list'

データ フレームを列に分割し、各列に 1 つずつ、新しいデータの小さなフレームのセットを作成したい

どこが間違っているのかわかりません。ヘルプは常に非常に高く評価されています。

4

2 に答える 2

2

したがって、データ フレームを複数のデータ フレーム (列ごとに 1 つずつ) に分割する必要があります。これを実行してもよろしいですか?一連のオブジェクトをループする方法を知りたいという質問がたくさんありますが、これらのオブジェクトをすべてリストまたは同様のデータ構造にラップする方がよい場合があります。データ フレームは基本的に列のリストであることに注意してください。

それはさておき……。

d <- as.data.frame(matrix(rnorm(30), ncol=5))
for(i in seq_len(ncol(d))) {
    name <- names(d)[i]
    assign(name, d[[i]])
}
于 2013-06-04T19:19:07.430 に答える
1

たぶん、このようなものですか?ラッピー呼び出しで匿名関数を定義するだけでよいと思います

 a <- 5
 b <- 1:a
 c <- as.data.frame(matrix(rnorm(30, 1), ncol = 5))
 out <- lapply(c, function(i) data.frame(i))
于 2013-06-04T19:56:53.733 に答える