Я заинтересован идентификации цифровых скаляры, как:Как проверить скаляр в R?
doub <- 3.14
intg <- 8L
Я знаю, что они рассматриваются как длина одного вектора. Таким образом, для любого объекта R x
, является is.vector(x) && length(x) == 1
правильным способом проверить, является ли x
скаляром? length(x) == 1
не является достаточным, так как он возвращает true, когда он должен возвращать false, для фрейма данных с одним столбцом или списком с одним элементом.
Есть ли причина, почему нет такой функции is.scalar
, реализованной в базе R
? По какой-то причине два я мог бы найти в других функциях строя в случае фрейма данных, упомянутых выше, а именно:
assertthat::is.scalar(data.frame(a = 1:2))
lambda.tools::is.scalar(data.frame(a = 1:2))
Почему результаты этих двух вызовов функций отличается от моего понимания (и определения) о том, как is.scalar
функция должна работать?
Вы, вероятно, хотите 'is.atomic' вместо' is.vector'. –
В чем разница между этими двумя? – Alex
См. '? Is.atomic':« Обычно называют атомные типы атомных векторов », но обратите внимание, что' is.vector' налагает дополнительные ограничения: объект может быть атомарным, но не вектором (в этом смысле). " – MichaelChirico