Я думаю, что это можно сделать с помощью атрибутов, например, пусть v <- 3.4
.Если это фунты стерлингов, мы могли бы использовать что-то вроде:
attributes(v)<-list(style = "descriptor", type = "currency", category = "pound")
Если это процент:
attributes(v)<-list(style = "descriptor", type = "proportion", category = "percentage")
Тогда,специальный метод печати будет необходимо.Можно также включить метод перевода, например, для перевода из фунтов стерлингов в доллары США (фунты в доллары), сантиметры в дюймы и т. Д.
descriptor
- это, по сути, мой взгляд на зарезервированный тип флага для указания специальныхобработка для данного номера.Позже это может распространиться на текстовые строки, такие как адреса и имена.Для других номеров, таких как телефонные номера, могут быть специальные разложения на коды стран, внутригородские / региональные коды, вплоть до добавочных номеров.
Такой пакет может бытьСродни ggplot
для типов данных - специальные методы для хранения, преобразования и печати вещей внутри типов?
Такая система может обеспечить правильность размеров при умножении значений.Это имеет реальную полезность во многих приложениях.
Насколько мне известно, единственная распространенная обработка единиц в R - это байты (байты, КБ, МБ и т. Д.) И время (часы, секунды и т. Д.).).Несмотря на это, обработка, хотя и проста, не очевидна - я все еще должен указать print
единиц, которые будут использоваться.Например, если я хочу напечатать размер объекта в килобайтах, я не могу просто вычислить object.size(v)/1024
- результат выводится в долях байта, а не в килобайтах;Я должен использовать print(object.size(v), units = "K")
.