【发布时间】:2020-02-29 20:16:09
【问题描述】:
library(Rmpfr)
mynumber <- new("mpfr", .Data = list(new("mpfr1", prec = 50L, exp = c(1045L,
0L), sign = 1L, d = c(151748608L, -358118319L)), new("mpfr1",
prec = 50L, exp = c(20L, 0L), sign = 1L, d = c(-1114947584L,
-1905679017L)), new("mpfr1", prec = 50L, exp = c(-55L, -1L
), sign = 1L, d = c(-1449918464L, -906197701L)), new("mpfr1",
prec = 50L, exp = c(221L, 0L), sign = 1L, d = c(819707904L,
-1329031570L))))
mynumber 是一个类 mpfr 对象,其中包含 4 个数字。我想cbindmynumber有一列0,即
> cbind(rep(0, 4), mynumber)
mynumber
[1,] 0 ?
[2,] 0 ?
[3,] 0 ?
[4,] 0 ?
这给了我????在第二列中,所以我尝试先将mynumber 更改为numeric 类
mydata <- cbind(rep(0, 4), sapply(mynumber, asNumeric))
> mydata
[,1] [,2]
[1,] 0 Inf
[2,] 0 5.833223e+05
[3,] 0 2.189941e-17
[4,] 0 2.327185e+66
但是,由于mynumber 中的第一个数字非常大,因此使用 asNumeric 将其更改为 Inf。
编辑: 我的最终目标是跑步:
mydata <- cbind(rep(0, 4), sapply(mynumber, asNumeric))
> mydata/rowSums(mydata)
[,1] [,2]
[1,] 0 NaN
[2,] 0 1
[3,] 0 1
[4,] 0 1
而不是让它打印出 NaN。
【问题讨论】:
-
mynumber是我从Rmpfr调用函数mpfr的结果。我应该提供有关包裹的任何其他信息吗?