我正在尝试填充一组矩阵,其中矩阵(对象)名称保存在列表中。我可以使用 get() 返回具有给定名称的对象,但是当我使用 get() 定义要填充的矩阵对象时遇到了函数问题。
#Create list of matrix names:
list.names <- c("m.1")
#Create matrix object
m.1 <- matrix(nrow=2,ncol=2)
#Return matrix m.1 from the list.names using get(). Works great!
get(list.names[1])
#Populate m.1 with some values. Doesn't work.
get(list.names[1]) <- c(1,2,3,4)
所以在最后一行代码中,我收到了一个错误:
找不到函数“get<-”
同样,我可以使用以下命令调用 m.1:
eval(as.name(list.name[1]))
但是当我尝试填充矩阵时,R 会返回类似的“找不到函数”错误。
有人可以在这里解释我的方法中的错误吗?
编辑/更新:
因此,在我尝试简化此处发布的问题时,我意识到我可能过于简化了我正在尝试做的事情。
所以,事实上,我正在尝试在一组矩阵中填充元素。矩阵的名称包含在 list.names 对象中。我正在使用嵌套的 for() 循环来填充矩阵中的每个元素。
所以,事实上,我的问题可以更准确地表述为:
get(list.names[1])[1,1] <- some_value
一些回复建议我根据我的原始帖子使用 assign ,但鉴于我试图在 object 中“分配”一个元素而不是整个 object ,这种方法将行不通。
对困惑感到抱歉。