空のデータフレームから始めて、次のようにデータフレームを埋める必要があります。forループは各反復で固定数の値を生成し、そのリストの値を使用して新しい列を追加し、列に一意の名前を付ける必要があります、col_i(ここで、iはループのi番目の反復です)。
これ(一見単純なタスク)はどのように実行できますか?
空のデータフレームから始めて、次のようにデータフレームを埋める必要があります。forループは各反復で固定数の値を生成し、そのリストの値を使用して新しい列を追加し、列に一意の名前を付ける必要があります、col_i(ここで、iはループのi番目の反復です)。
これ(一見単純なタスク)はどのように実行できますか?
データフレームを区分的に構築する最も効率的な方法は、パーツを事前に割り当てられたリストに保存し、後でそれらをまとめることです。
例えば:
num.iters <- 10
l <- vector('list', num.iters)
for (i in 1:num.iters) {
l[[i]] <- rnorm(3) # the column data
names(l)[i] <- paste('Col', i, sep='.') # the column name
}
do.call(cbind, l) # ... if your cols are the same datatype and you want a matrix
data.frame(l) # otherwise
何が問題なの?cbind
ですか?
The functions cbind and rbind are S3 generic, with methods for data frames.
The data frame method will be used if at least one argument is a data frame
and the rest are vectors or matrices.
?colnames
data.framesにも適用できます