在R中用哈希存储矩阵

时间:2017-09-06 07:10:53

标签: r hash

我正在使用Hash Package将矩阵存储为R编程中的键值对,但我面临一些问题让我告诉你我的情况我有两个矩阵说矩阵a和矩阵b,我想制作矩阵a ,作为键,矩阵b 作为矩阵a 的值,我尝试使用下面的脚本,但它似乎不起作用好的

a = 1 2  b = 5 6 
    3 4      7 8

dict <- hash()
.set(dict, a, b)
print(dict)

Actual Output
`1`
1 = 5

`2`
2 = 6

`3`
3 = 7

`4`
4 = 8

But I expect the output to be as

`1`
1 2     5 6
     =
3 4     7 8

如何实现这一点,哈希包支持这种操作,或者我应该使用任何其他包,任何帮助将不胜感激,并提前感谢您。

2 个答案:

答案 0 :(得分:0)

显然,包hash不支持这种操作。 (顺便说一句,它是hash,小写h,R区分大小写。)
我没有使用该软件包的经验,但根据手册,您可以执行以下操作。

library(hash)

# Data
a <- matrix(1:4, ncol = 2, byrow = TRUE)
b <- matrix(5:8, ncol = 2, byrow = TRUE)

h <- hash(1:2, list(a, b))
h
<hash> containing 2 key-value pair(s).
  1 : 1 3 2 4
  2 : 5 7 6 8

h[["1"]]
     [,1] [,2]
[1,]    1    2
[2,]    3    4

h$`1`
     [,1] [,2]
[1,]    1    2
[2,]    3    4

或者,更好的是,您可以命名输出的组件。

h <- hash(letters[1:2], list(a, b))
h
<hash> containing 2 key-value pair(s).
  a : 1 3 2 4
  b : 5 7 6 8

h[["a"]]
     [,1] [,2]
[1,]    1    2
[2,]    3    4

h$a
     [,1] [,2]
[1,]    1    2
[2,]    3    4

h中存储的对象类是预期的矩阵。

class(h$a)
[1] "matrix"

请注意,仍然根据手册,您可以避免使用函数.set,而应使用函数hash

答案 1 :(得分:0)

您似乎对

之类的东西感兴趣
library(hash)
a <- matrix(c(1,2,3,4),2,2,byrow = T)
b <- matrix(c(5,6,7,8),2,2,byrow = T)

a <- list(a)
b <- list(b)

dict <- hash()
.set(dict, a, b)
dict

输出

c(1, 3, 2, 4) : 5, 7, 6, 8


希望这有帮助!