Ваши данные не являются цифрами c - в противном случае пропущенные значения будут представлены как NA
, и ваша попытка round
будет работать нормально.
Вам необходимо преобразовать данные к цифре c. Если это класс character
, вы можете go прямо с as.numeric()
, но если это класс factor
, используйте as.numeric(as.character())
. Вы должны будете сделать это для каждого столбца, который вы хотите преобразовать, либо с помощью oop, либо lapply
, либо с чем-то, что перебирает столбцы. Если вы хотите преобразовать все ваши столбцы, вы можете выполнить одно из следующих действий:
data = lapply(data, function(x) as.numeric(as.character(x)))
library(dplyr)
data = mutate_all(data, ~as.numeric(as.character(x)))
Вы всегда должны убедиться, что ваши данные имеют правильный тип. Вы можете указать классы столбцов при импорте данных, а также настроить, какие значения следует обрабатывать как NA
(проверьте документацию по любой функции, которую вы использовали для импорта данных, найдите na.strings
в большинстве функций или na
аргумент в readr
функциях), вы можете проверить классы столбцов, например, с помощью str(data)
или dplyr::glimpse(data)
или sapply(data, class)
, или, взглянув на вкладку "среда" в RStudio, убедиться, что все именно так, как и должно быть .