我在R中的程序创建了一个n维数组。
PVALUES = array(0, dim=dimensions)
其中dimensions = c(x,y,z, ... )
尺寸取决于特定输入。所以,我想创建一个通用代码:
通过阅读本网站,我学会了如何做#2 - 从数组中读取一个元素
ll=list(x,y,z, ...)
element_xyz = do.call(`[`, c(list(PVALUES), ll))
请帮我解决#1,即将元素存储到n维数组中。
让我重新解释一下我的问题
假设我有一个4维数组。我可以存储一个值并从这个数组中读取一个值:
PVALUES[1,1,1,1] = 43 #set a value
data = PVALUES[1,1,1,1] #use a value
如何使用索引向量的函数执行相同的操作:
indexes = c(1,1,1,1)
set(PVALUES, indexes) = 43
data = get(PVALUES, indexes) ?
谢谢
答案 0 :(得分:0)
数组的索引可以使用与维度具有相同列数的矩阵来完成:
# Assignment with "[<-"
newvals <- matrix( c( x,y,z,vals), ncol=4)
PVALUES[ newvals[ ,-4] ] <- vals
# Reading values with "["
PVALUES[ newvals[ ,-4] ]
答案 1 :(得分:0)
感谢您的回复。
我将使用以下解决方案:
PVALUES = array(0, dim=dimensions) #Create an n-dimensional array
dimensions = c(x,y,z,...,n)
将值设置为PVALUES [x,y,z,...,n]:
y=c(x,y,z,...,n)
PVALUES[t(y)]=26
从PVALUES [x,y,z,...,n]中读取值:
y=c(x,y,z,...,n)
data=PVALUES[t(y)]