首页 > 解决方案 > 如何在 R 中编写分段函数的分布?

问题描述

如何在 R 中编写分段函数的分布?例如,如果随机变量XN(0,1)ifp=1X~N(0,2)when p=0。我尝试以下代码:

   if(p==1)(X=rnorm(1,0,2))?

标签: r

解决方案


library(tidyverse)

#define the function pieces 
g =function(x) rnorm(1,0,2)
h =function(x) rnorm(1,0,1) 

#define the input 
p = c(1,0,1,1,0) 
#longer input
#p = sample(c(0,1),2000,replace = T)

piecewise_function= function(p) {
  
  case_when( p==1 ~ g() ,      # a condition a tilde and a function
             p==0 ~ h() ,
             T ~ NA)        #what to do if neither condition is met.
  }

piecewise_function(p)

推荐阅读