使用units包,我可以创建一个具有物理单位的向量,例如:

library(units)
a = 1:10
units(a) <- with(ud_units, m/s)
a
## Units: m/s
##  [1]  1  2  3  4  5  6  7  8  9 10

但是如何返回没有单位的普通R向量?
unclass(a)完成了大部分工作,但在向量中留下了一堆属性:
unclass(a)
## [1]  1  2  3  4  5  6  7  8  9 10
## attr(,"units")
## $numerator
## [1] "m"
##
## $denominator
## [1] "s"
##
## attr(,"class")
## [1] "symbolic_units"

但我觉得应该有一个更简单的方法。分配为unitless并没有帮助,它会创建一个带有“无单位”单位的向量。

小插图中也没有任何内容...

最佳答案

您可以使用as.vector :)

或更笼统地说:

clean_units <- function(x){
  attr(x,"units") <- NULL
  class(x) <- setdiff(class(x),"units")
  x
}

a <- clean_units(a)
# [1]  1  2  3  4  5  6  7  8  9 10
str(a)
# int [1:10] 1 2 3 4 5 6 7 8 9 10

关于r - 从R向量中移除单位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46935207/

10-12 22:32