xmax, но он не может даже получить доступ к xmax, пока эта переменная не будет правильно передана ему. Я хочу сказать, что вы не можете использовать существующую R-функцию как «дочернюю» функцию, потому что эта функция не будет настроена для удаления полученной переменной.

ли удалить элемент из ... и передать ... на другие функции? Мои первые две попытки потерпели неудачу:

parent = function(...)
{

   a = list(...)
   str(a)
   a$toRemove = NULL  
   str(a)

   # attempt 1   
   child(a)   

   # attempt 2
   child( ... = a )
}


child = function(...)
{
  a = list( ... )
  str(a)
}

parent( a = 1 , toRemove = 2 )

редактировать
Извините за путаницу. Я исправил ребенка (). Намерение состояло в том, чтобы иметь дочерний список содержимого ...

Edit2
Вот еще пример из реальной жизни (но все же довольно простой, чтобы мы могли поговорить об этом). Родитель вызывается через рекурсию. Родителю нужно знать глубину рекурсивного вызова. Вызывающие стороны вне parent не должны знать о «глубине» и не должны устанавливать ее при вызове parent (). Родитель вызывает другие функции, в этом случае child (). Дочерним элементам нужны значения в ... Очевидно, что дочернему элементу не нужна «глубина», потому что родительский объект создал его для собственного использования.

parent = function( ... )
{

   depth = list(...)$depth      
   if ( is.null( depth ) )
   {
       depth = 1
   }  
   print( depth )

   # parent needs value of depth to perform various calculations (not shown here)

   if ( depth == 5 )
   {
       return()
   }
   else
   {
      # child doesn't need "depth" in ...
      child( ... ) 
   }

   # yikes!  now we've added a second, third, etc. depth value to ...
   parent( depth = depth + 1 , ... )

}


child = function(...) 
{       
    # does some magic    
}

Ответы на вопрос(5)

Ваш ответ на вопрос