【问题标题】:Performing operation along vector in R - only returns a single value在 R 中沿向量执行操作 - 仅返回单个值
【发布时间】:2021-01-23 01:41:36
【问题描述】:

我正在尝试对向量xt 执行条件运算,给定一个值lambdat。 在ifelse() 函数之外,操作可以工作,但完整的代码不能。见下面的例子,干杯!

xt <- c(1,2,3)
lambdat <- 1
bc_applied_columnt <- ifelse(lambdat != 0, (xt^(lambdat)-1)/lambdat, log(xt))

这将返回 0(向量 xt 中的第一个值),但我希望它返回 (xt^(lambdat)-1)/lambdatlog(xt) 的输出 - 取决于条件。

【问题讨论】:

  • 哎呀,对不起,我刚刚投了赞成票 - 现在接受了答案,谢谢!

标签: r if-statement vector


【解决方案1】:

ifelse 返回与您检查的条件长度相同的输出。由于 length(lambdat != 0) 的长度为 1,ifelse 也返回长度为 1 的输出。当您只有一个值要检查时,请使用 if/else

xt <- c(1,2,3)
lambdat <- 1
if(lambdat != 0) (xt^(lambdat)-1)/lambdat else log(xt)
#[1] 0 1 2

【讨论】:

    猜你喜欢
    • 2013-12-23
    • 1970-01-01
    • 2011-06-15
    • 2019-11-24
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    相关资源
    最近更新 更多