Мне нужна функция (большого) числа переменных и именованный список, дающий начальные значения для этих переменных.Это для использования в качестве входных данных в функции mle2 в R.
Назначение не помогает мне, так как мне нужно вызывать переменные, а не просто давать им значения.Я могу создать список или вектор с именами, но я не могу распознать их как переменные.Я пробовал приведенный ниже код с и без get, пробовал команду вставки непосредственно в startlist и многие другие итерации, подобные этому.
# This is an example with 4 variables that works:
fun.long<-function(p1,p2,p3,p4) {
p1+p2+p3+p4}
startlist<-list(p1=0.5,p2=0.5,p3=0.5,p4=0.5)
# Since I have way more than 4 variables I'd like to automate this.
# what I had hoped for was something like:
varname<-list()
for (i in 1:4) {
varname<-cbind(varname,paste0("p", i))}
fun.long<-function(MyList) {
q=0
for (i in 1:4) {
q=q+get(MyList[i])}
return(q)}
startlist<-list()
for (i in 1:4) {
startlist<-cbind(startlist,get(varname[i])=0.5)}
Мне бы хотелось, чтобы fun.long(varname)
вывел p1+p2+p3+p4
, вместо этого я получил: Error in get(varname[i]) : invalid first argument
Я бы хотел, чтобы команда startlist
напечатала:
$p1
[1] 0.5
$p2
[1] 0.5
$p3
[1] 0.5
$p4
[1] 0.5
Вместо этого я получаю:
Error: unexpected '=' in:
for (i in 1:4) {
startlist<-cbind(startlist,get(varname[i])=