鉴于此:
vec1 = 1:10
varname = "vec1"
我知道我可以这样做:
eval(parse(text=paste0(varname,"[5] = 20")))
如果可能,我想找一些更干净的东西。我试过这个:
`<-`(`[`(as.name(varname), 5), 20)
但是我收到了一个错误:&#34;类型&#39;符号&#39;不是子集表格&#34;。
非常类似的 工作:
`<-`(`[`(vec1, 5), 20)
为什么vec1
在作为as.name("vec1")
函数的第一个参数传递时与[
区别对待?
如果我试试这个:
`<-`(`[`(as.name("vec1"), 5), 20)
我得到了一个奇怪的错误:&#34;赋值目标扩展到非语言对象&#34;。
有人可以解释这里涉及的细微差别吗?有没有更简洁的方法来做我想要的,同时将vec1保持为一个简单的,独立的顶级变量?在这种情况下的实际情况更复杂,我已经有一个解决方法;我要求更多地了解可能的基本原理以及R不可能做到的事情。