【发布时间】: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
如果函数给出值 0,我想使用 ifelse 返回 0,否则给出 1。 代码如下:
ifelse((function() get_attribute(exp.sim, "Tx1.Event"))==0, 0, 1))
但我收到此错误消息: 比较 (1) 仅适用于 atomic 和 list 类型 有谁知道如何解决这个问题?
【问题讨论】:
标签: r function if-statement
也许你可以试试
ifelse((function() get_attribute(exp.sim, "Tx1.Event"))()==0, 0, 1))
在== 前面添加了一个额外的(),这使您可以运行您的lambda 函数。
【讨论】:
class(function() get_attribute(exp.sim, "Tx1.Event")),你会看到它是function,但它是匿名的,因为你没有将它分配给任何对象。请注意,它只是一个函数,只要您有输入参数,它就会为您提供返回值。如果你加上(),这意味着我们将参数传递给这个函数(虽然它是空参数),那么我们将得到一个从函数返回的值。