2

R の既存のデータフレームに行を追加しようとしています。データフレームはサブジェクトを表し、これを新しく (生成された) データで更新したいと考えています。これを実行すると、データフレームのインデックス番号がおかしくなりました:

1、2、21、211、2111、21111など

これらは読む練習ではありません。「通常の」インデックス番号を取得するには? (1、2、3、4 など)。

x <- 10
y <- 463
dat <- data.frame(x,y)

for (i in 1:10) {
dat.sub <- dat[nrow(dat),]       # select the last row from 'dat'
dat.sub <- within(dat.sub, {     # within that selection update the objects
    x <- x+1
    y <- y+1
})
dat <- rbind(dat, dat.sub, deparse.level = 2)   # attach updated row to the 'dat'
}

dat
dat[3,]
4

1 に答える 1

0

dat.sub問題はdata.frameクラスがあり、2行目以降に同じインデックス番号があると思います。dat.sub最も簡単な方法は、インデックスを割り当てずに のクラスを変更することです。1つの方法は次のようなものです:

dat.sub <- c(within(dat.sub, {     # within that selection update the objects
    x <- x+1
    y <- y+1
}))

caをforループに追加しdat.subて、ベクトルとして作成します。

于 2012-10-21T15:00:11.987 に答える