В R у меня есть достаточно большой фрейм данных (d), который равен 10500 на 6000. Все значения являются числовыми. У него много элементов значения na в обеих его строках и столбцах, и я хочу заменить эти значения нулем. Я использовал:установить отсутствующие значения в константу в R, вычислительную скорость
d[is.na(d)] <- 0
, но это довольно медленно. Есть ли лучший способ сделать это в R?
Я открыт для использования других пакетов R.
Я бы предпочел, чтобы обсуждение было сосредоточено на вычислительной скорости, а не на «почему бы вы заменили na на нули», например. И, хотя я понимаю, что аналогичный Q был задан (How do I replace NA values with zeros in an R dataframe?), фокус не был связан с вычислительной скоростью на большом кадре данных со многими отсутствующими значениями.
Спасибо!
Edited Решение: Как услужливо предложил, изменение д к матрице перед применением is.na ускорил вычисление по порядку величины
ли этот фрейм данных столбцов одного и того же типа (т.е. все числовые, или все характера)? Хранение его в виде матрицы может ускорить это. – Spacedman
частое преобразование в 'data.table' обеспечивает улучшение скорости для многих операций, но' is.na.data.table' не является одним из них. – shayaa
@ Spacedman, все числовые - извините, должен был указать это. будет редактировать. – Peter