提问人:Honeybear 提问时间:10/23/2023 最后编辑:Honeybear 更新时间:10/23/2023 访问量:43
R 打印带有相应单位的单位编号
R print a units number with the respective unit
问:
我有一个使用带有单位的数字参数的脚本。将消息打印到日志/用户时,我希望打印添加相应的单位。 我希望 R 在执行以下操作时足够聪明:
library(units)
min_size = set_units(1200, "m^2")
print(paste0("Must be at least ", min_size))
# Prints: "Must be at least 1200"
# I want: "Must be at least 1200 m^2")
# ideally without explicitly adding " m^2", to avoid code inconsistency when changing units
print(paste0("Must be at least ", min_size, " m^2"))
答:
0赞
Honeybear
10/23/2023
#1
简单的答案是用于获取单位的可打印表示。units(min_size)
print(paste0("Must be at least ", min_size, " ", units(min_size)))
评论
4赞
Roland
10/23/2023
您可以像这样使用: .format
units_options(group = c("", "")); print(paste0("Must be at least ", format(min_size)))
1赞
user2554330
10/23/2023
#2
您有几种解决方法:显式打印单位,或用于自动附加单位。format()
我将尝试回答为什么您最初的尝试(依靠进行格式化)不起作用的问题。paste0()
paste0()
使用 将对象转换为字符串。一般来说,这不是你应该用来获得漂亮显示的方法。例如,给出 ,忽略用户的设置。当您希望以用户友好的方式显示内容时,请使用进行转换。例如,给出 .as.character()
as.character()
as.character(pi)
"3.14159265358979"
options("digits")
format()
format(pi)
"3.141593"
那么为什么不使用呢?因为四舍五入时会丢失很多信息。您无法从生成的字符串中取回它。另一方面,损失更少。(它确实丢失了一些信息; 不等于 ,并使用默认方法,因此会丢失单位信息。paste0()
format()
format()
as.character()
as.numeric(as.character(pi))
pi
as.character(min_size)
我希望这有助于解释正在发生的事情。
上一个:如何判断用户的区域设置单位设置
下一个:F# 按位运算符和度量单位
评论
set_units
as.character.units
as.character
as.character
format