对于R中的用户定义函数,Do.call返回缺少的参数

时间:2016-12-20 12:49:01

标签: r

我试图在另一个函数中使用一个函数(称之为A)(称之为B)(我定义了这两个函数)。为此,我在B函数的开头定义了一些A参数,然后我使用do.call调用了A.但是,功能A无法识别这些参数,即使它们已被定义。发生了什么事?

背景信息:我试图运行一个简单系统的模拟。为此,我将问题分解为各种子功能:一个(genpar)生成随机参数供模拟使用,另一个(indeffbasic)从参数值映射到变量值。然后我将这两个函数组合在一个名为indeff的新函数中。在最后一步发生错误。我已经四处寻找,但无法找到任何解决方案。如果答案很明显,请原谅我。请参阅以下代码:

public class Header
    {
        [FindsBy(How = How.Name, Using = "user_profile")]
        public IWebElement BtnUserProfile{ get; set; }

        [FindsBy(How = How.ClassName, Using = "logout_button")]
        public IWebElement BtnLogout { get; set; }

        public void Logout()
         {
            BtnLogout.Click();
         }
    }

 public class LoginPage
    {
        [FindsBy(How = How.Name, Using = "username")]
        public IWebElement TxtbxUserName { get; set; }

        [FindsBy(How = How.Name, Using = "password")]
        public IWebElement TxtbxPassword { get; set; }

        [FindsBy(How = How.ClassName, Using = "button")]
        public IWebElement BtnSignIn { get; set; }


        public string GoTO()
       {
           Driver.Navigate().GoToUrl(LoginURL);
       }
        public void Login(string username, string password)
         {
            TxtbxUserName.SendKeys(username);
            TxtbxPassword.SendKeys(password);
            BtnSignIn.Click();
         }
        public bool IsAt()
         {
             return Driver.Url == LoginURL;
         }
    }

1 个答案:

答案 0 :(得分:1)

在你的行

return(do.call(indeffbasic(), parameters))

do.call的第一个参数应该是函数(或函数的名称),而不是函数调用。所以用

替换它
return(do.call(indeffbasic, parameters))

或只是

do.call(indeffbasic, parameters)

因为函数中最后一个表达式的值是返回值。