gpt4 book ai didi

r - 如何在创建自己的函数时处理 NA

转载 作者:行者123 更新时间:2023-12-01 07:14:28 25 4
gpt4 key购买 nike

我想知道如何在 R 中创建自己的函数时处理 NA 值。

我的代码如下:

# The function is simple:

function.BHR <-function(x) prod(1+x)-1

# The structure of the data.frame:
dat <- t(data.frame(
"A"=c(20:29/100),
"B"=c(35:44/100),
"C"=c(20:29/100),
"E"=c(50:57/100,NA,NA),
"E"=c(45:51/100,NA,NA,NA))

apply(dat,2,function.BHR)

简单的应用函数为最后三列提供 NA。而不是这个
它应该应用所有非 NA 值的函数。因此:
  for column 8: 
function.BHR(c(0.27,0.42,0.27,0.57))
[1] 2.595799

for column 9:
function.BHR(c(0.28,0.43,0.28))
[1] 1.342912

for column 10:
function.BHR(c(0.29,0.44,0.29))
[1] 1.396304

提前致谢!

乔治

最佳答案

您可以简单地使用 na.rm prod 的论据.见 ?prod详情:

function.BHR <-function(x) { prod(1+x, na.rm=TRUE)-1 }

apply(dat, 2, function.BHR)

# [1] 3.228200 3.389747 3.556183 3.727619 3.904166 4.085938 4.273048 2.595799 1.342912 1.396304

关于r - 如何在创建自己的函数时处理 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17264084/

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