如何将integer64值的数据帧转换为矩阵?

里奇棉花

我有一个数据框,它完全由integer64要转换为矩阵组成

library(bit64)
(dfr <- data.frame(x = as.integer64(10^(9:18))))
##                      x
## 1           1000000000
## 2          10000000000
## 3         100000000000
## 4        1000000000000
## 5       10000000000000
## 6      100000000000000
## 7     1000000000000000
## 8    10000000000000000
## 9   100000000000000000
## 10 1000000000000000000

不幸的是,as.matrix没有给出正确的答案。

(m <- as.matrix(dfr))
##                   x
##  [1,] 4.940656e-315
##  [2,] 4.940656e-314
##  [3,] 4.940656e-313
##  [4,] 4.940656e-312
##  [5,] 4.940656e-311
##  [6,] 4.940656e-310
##  [7,] 4.940656e-309
##  [8,] 5.431165e-308
##  [9,] 5.620396e-302
## [10,] 7.832953e-242

问题似乎在于,integer64值使用“ integer64”类属性(加上一些魔术使它们正确打印并进行算术)存储为数值,并被剥夺了as.matrix

我不能仅仅这样做,class(m) <- "integer64"因为那会改变矩阵对象的类而不是其内容。

同样,mode(m) <- "integer64"给出错误的答案typeof(m) <- "integer64"storage.mode(m) <- "integer64"引发错误。

当然,我可以通过将列转换为double(dfr$x <- as.double(dfr$x)来解决问题,但是感觉应该有一种适当的方法来解决这个问题。

如何获得integer64价值矩阵

洪井井

对于原始向量,dim直接分配属性似乎有效:

> z <- as.integer64(1:10)
> z
integer64
 [1] 1  2  3  4  5  6  7  8  9  10
> dim(z) <- c(10, 1)
> z
integer64
      [,1]
 [1,] 1   
 [2,] 2   
 [3,] 3   
 [4,] 4   
 [5,] 5   
 [6,] 6   
 [7,] 7   
 [8,] 8   
 [9,] 9   
[10,] 10  

对于数据框,cbind列也可以起作用:

> df <- data.frame(x=as.integer64(1:5), y=as.integer64(6:10))
> df
  x  y
1 1  6
2 2  7
3 3  8
4 4  9
5 5 10
> cbind(df$x, df$y)
integer64
     [,1] [,2]
[1,] 1    6   
[2,] 2    7   
[3,] 3    8   
[4,] 4    9   
[5,] 5    10  

因此,对于任意数量的列,do.call方法是:

> do.call(cbind, df)
integer64
     x y 
[1,] 1 6 
[2,] 2 7 
[3,] 3 8 
[4,] 4 9 
[5,] 5 10

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R:如何将数据帧转换为nxn矩阵

来自分类Dev

R:如何将数据帧转换为nxn矩阵

来自分类Dev

R:如果值满足特定条件,如何将数据帧转换为邻接矩阵?

来自分类Dev

如何将字典的数据帧转换为数据帧?

来自分类Dev

我如何将数据帧列表转换为R中的矩阵列表?

来自分类Dev

在R中,如何将矩阵强制转换为数据帧?

来自分类Dev

如何将字符串从数据帧转换为 Numpy Datetime64

来自分类Dev

如何将多索引数据转换为数据帧

来自分类Dev

将数据帧转换为矩阵

来自分类Dev

如何将数据帧的列的值转换为0和1?

来自分类Dev

如何将数据帧转换为时间序列?

来自分类Dev

如何将数据帧中的NaN转换为NA

来自分类Dev

如何将colSums转换为R到数据帧

来自分类Dev

如何将DFM转换为保留docvar的数据帧,但?

来自分类Dev

如何将熊猫数据帧转换为NumPy数组?

来自分类Dev

如何将for循环的结果转换为pandas数据帧?

来自分类Dev

如何将colSums转换为R到数据帧

来自分类Dev

如何将数据帧转换为 DTM

来自分类Dev

如何将数组列表转换为 Spark 数据帧

来自分类Dev

如何将R数据帧转换为长格式

来自分类Dev

如何将HashMap <Object,int []>值转换为矩阵

来自分类Dev

R:如何将值矩阵转换为函数

来自分类Dev

如何将2D数据帧转换为3D矩阵,并保留行和列顺序

来自分类Dev

如何将矩阵转换为熊猫数据框

来自分类Dev

如何将这种数据框转换为矩阵?

来自分类Dev

如何将列表转换为数据框矩阵

来自分类Dev

如何将负字节值转换为short或integer?

来自分类Dev

如何使用变量作为矩阵坐标将数据帧转换为矩阵?

来自分类Dev

如何使用变量作为矩阵坐标将数据帧转换为矩阵?

Related 相关文章

热门标签

归档