【发布时间】:2012-10-21 14:51:20
【问题描述】:
我正在尝试将一行附加到 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,]
【问题讨论】:
-
1) 永远不要在循环中增长对象(通过
rbind、c、cbind等);在循环之前预先分配整个结果并通过子集填充元素。 2)您可以设置rownames(dat) <- NULL将它们设置为它们的“正常”数字。