我有一个150,000行的数据框,其中2,000列包含值,有些是负数。
我将这些负值替换为0,但是这样做非常缓慢(〜60分钟或更长时间)。
df[df < 0] = 0df[,1441:1453]看起来像(所有列/值都是数字):

  V1441 V1442 V1443 V1444 V1445 V1446 V1447 V1448 V1449 V1450 V1451 V1452 V1453
1     3     1     0     4     4    -2     0     3    12     5    17    34    27
2     0     1     0     7     0     0     0     1     0     0     0     0     0
3     0     2     0     1     2     3     6     1     2     1    -6     3     1
4     1     2     3     6     1     2     1    -6     3     1    -4     1     0
5     1     2     1    -6     3     1    -4     1     0     0     1     0     0
6     1     0     0     1     0     0     0     0     0     0     1     2     2

有没有一种方法可以加快这样的过程,例如,我正在做的事情非常慢,而对此有更快的方法吗?
谢谢。

最佳答案

尝试将df转换为矩阵。

df <- data.frame(a=rnorm(1000),b=rnorm(1000))
m <- as.matrix(df)
m[m<0] <- 0
df <- as.data.frame(m)

关于r - 在R中快速替换数据框中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12835942/

10-12 17:59
查看更多