我有一个150,000行的数据框,其中2,000列包含值,有些是负数。
我将这些负值替换为0,但是这样做非常缓慢(〜60分钟或更长时间)。df[df < 0] = 0
df[,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/