以下是使用NAToUnknown在gdata包裹。我使用Andrie的解决方案创建了一个巨大的数据表,还包括了与Andrie解决方案的时间比较。# CREATE DATA TABLEdt1 = create_dt(2e5, 200, 0.1)# FUNCTIONS TO SET NA TO ZERO f_gdata = function(dt, un = 0) gdata::NAToUnknown(dt, un)f_Andrie = function(dt) remove_na(dt)# COMPARE SOLUTIONS AND TIMESsystem.time(a_gdata <- f_gdata(dt1))user system elapsed 4.224 2.962 7.388 system.time(a_andrie <- f_Andrie(dt1)) user system elapsed 4.635 4.730 20.060 identical(a_gdata, g_andrie) TRUE