В R, как создать именованный список и функцию динамически генерируемых переменных - PullRequest
1 голос
/ 30 мая 2019

Мне нужна функция (большого) числа переменных и именованный список, дающий начальные значения для этих переменных.Это для использования в качестве входных данных в функции 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])=
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...