for loop - 提高速度

时间:2014-03-28 10:01:41

标签: r command vectorization

我有以下代码。现在太慢了。如何重写它以提高速度? (采用矢量化形式,使用应用函数或任何其他形式)

我的数据框称为城市。

bcolumn.pattern <- '^b[0123456789][0123456789]'
bcolumn.index = grep(bcolumn.pattern, names(urban))
bcolumn.nrow <- dim(urban)[1]

for (k in bcolumn.index){
for (l in( 1 :bcolumn.nrow))
if (    is.nan(urban [l, ][ ,k])    )     
{urban [l, ][ ,k] <- 0 }

1 个答案:

答案 0 :(得分:2)

一种可能性:

# if urban is a data.frame
urban[,bcolumn.index] <- lapply(urban[,bcolumn.index], function(x) {x[is.nan(x)] <- 0; x})
# if urban is a matrix
urban[,column.index][is.nan(urban[, column.index])] <- 0