我有一个约2000万行文件,并且我试图在其上运行for循环。我等了整个周末,但仍然没有完成1%。
我正在尝试对每一行的一列进行计算。如果该值小于0.5,它将采用该值并将其添加到新列中;否则,将采用该值并将其从1中减去,然后将该值添加到新列中。
for (i in 1: length(halflife$year)){
if(halflife$year[i] < 0.5){
halflife$month[i] = halflife$year[i]
} else{
halflife$month[i] = 1 - halflife$year[i]
}
}
它应在
month
中添加一个名称为halflife
的新列,且所有值均小于0.5 最佳答案
使用data.table
包应该更快
library(data.table)
halflife = data.table(halflife)
halflife[year < 0.5, month := year]
halflife[year >= 0.5, month := 1 - year]
此外,如果要从csv文件读取数据,请使用
fread()
中的data.table
而不是read.csv()
。快多了关于r - 循环更快,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57573191/