< p >
因此,我为
gmp
R软件包的bigq
向量的names
函数不像人们期望的那样工作:
> library(gmp)
> x <- as.bigq(c(0.5,0.5))
> names(x) <- c("a", "b")
> names(x)
[1] "a" "b" NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
因此,我为
bigq
类定义了一个names
函数,如下所示,它可以正常工作:> names.bigq <- function(x) attr(x, "names")[1:length(x)]
> names(x)
[1] "a" "b"
即使使用 names(x) <-
和 setNames
也可以很好地与 names.bigq
函数一起使用。但是,通过名称访问向量的元素不起作用:
> x["a"]
bigq(0)
有没有办法让它工作?如果x["a"]
与x[which(names(x)=="a")]
相同,那就没问题了:
> x[which(names(x)=="a")]
Big Rational ('bigq') :
[1] 1/2
注意:一种可能的解决方法是将x
转换为字符模式,然后再转回来。