【问题标题】:compare function value with a numerical value in R将函数值与 R 中的数值进行比较
【发布时间】:2021-03-25 22:11:29
【问题描述】:

如果函数给出值 0,我想使用 ifelse 返回 0,否则给出 1。 代码如下:

ifelse((function() get_attribute(exp.sim, "Tx1.Event"))==0, 0, 1))

但我收到此错误消息: 比较 (1) 仅适用于 atomic 和 list 类型 有谁知道如何解决这个问题?

【问题讨论】:

    标签: r function if-statement


    【解决方案1】:

    也许你可以试试

    ifelse((function() get_attribute(exp.sim, "Tx1.Event"))()==0, 0, 1))
    

    == 前面添加了一个额外的(),这使您可以运行您的lambda 函数。

    【讨论】:

    • 谢谢你,它现在对我有用。你能进一步解释一下吗?我对这个理论很好奇......
    • @kaiyuwei 如果你尝试class(function() get_attribute(exp.sim, "Tx1.Event")),你会看到它是function,但它是匿名的,因为你没有将它分配给任何对象。请注意,它只是一个函数,只要您有输入参数,它就会为您提供返回值。如果你加上(),这意味着我们将参数传递给这个函数(虽然它是空参数),那么我们将得到一个从函数返回的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    相关资源
    最近更新 更多