У меня возник вопрос о том, как R обрабатывает двойные, числовые и символьные типы данных внутри.Двойные цифры в R
Моя проблема возникает из этого фрагмента кода:
dn <- 1.0
dc <- "1.0"
dn == dc # FALSE
dn # 1
as.double(dc) # 1
Проблема в том, я ожидал двойной, чтобы сохранить форматирование, цифры после запятой, вместо того, чтобы сократить таким зверским способом, что делает его трудно сравнить его с версией персонажа того же числа. Конечно, проблемы нет с цифрами вроде 16.2, для которых форматирование правильно сохраняется.
Есть ли способ сделать «двойное» форматирование продолжительным?
Большое спасибо
вы спрашиваете о форматировании при выводе чисел? если да, см. '? format'. Или вы спрашиваете о точности машины? В этом случае вы хотите 'all.equal (as.numeric (dc), dn)' –
ORLY? В чем разница между «16.2» и «16.20000»? Но более того, нет такой вещи, как «версия персонажа» для числа. –
оба 'sprintf ("%. 1f ", dn) == dc' и' dn == as.double (dc) 'имеют значение TRUE. Вы не можете рассчитывать сравнить число со строкой и надеяться, что это будет оцениваться как TRUE. –