1"函数的 `if` 警告-6ren"> 1"函数的 `if` 警告-我有一个数组: a 0){ a/sum(a) } else 1 } 此函数想要检查 a 中是否有大于 0 的值,如果有,则将每个元素除以总和。 否则它应该只记录 1。 我收到以下警告消-6ren">
gpt4 book ai didi

r - 解释来自 "condition has length > 1"函数的 `if` 警告

转载 作者:行者123 更新时间:2023-12-03 07:42:29 26 4
gpt4 key购买 nike

我有一个数组:

a <- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

并且想实现以下功能:

w<-function(a){
if (a>0){
a/sum(a)
}
else 1
}

此函数想要检查 a 中是否有大于 0 的值,如果有,则将每个元素除以总和。

否则它应该只记录 1。

我收到以下警告消息:

 Warning message:
In if (a > 0) { :
the condition has length > 1 and only the first element will be used

如何更正该功能?

最佳答案

也许你想要ifelse:

a <- c(1,1,1,1,0,0,0,0,2,2)
ifelse(a>0,a/sum(a),1)

[1] 0.125 0.125 0.125 0.125 1.000 1.000 1.000 1.000
[9] 0.250 0.250

关于r - 解释来自 "condition has length > 1"函数的 `if` 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14170778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com