我正在使用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
如何实现这一点,哈希包支持这种操作,或者我应该使用任何其他包,任何帮助将不胜感激,并提前感谢您。
答案 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
希望这有帮助!