我已经被这几次困惑了,所以对于其他可能偶然遇到同样问题的人来说,这是一个问题.
考虑这个网格单位向量,
a = unit(1:3, c("cm", "in", "npc"))
我想用新值替换一些元素.自然的方法是,
a[1] = unit(2,"pt") a # [1] 2cm 2in 3npc
出了点问题:只更改了数值,而不是单位.为什么?该怎么办?
编辑:正如下面的一个答案所指出的,这些单位只是带有属性的数字向量.但是,它们的后代unit.arithmetic
也unit.list
应该被认为是完全通用的解决方案(例如,用于调整ggplot对象的面板大小).考虑这个单位向量,
(b = a + unit(1, "npc")) # [1] 1cm+1npc 2in+1npc 3npc+1npc # [1] "unit.arithmetic" "unit"
现在替换特定元素更加棘手,因为它们不再是原子元素.