r - 如何在 R 中编写分段函数的分布?
问题描述
如何在 R 中编写分段函数的分布?例如,如果随机变量X
是N(0,1)
ifp=1
和X~N(0,2)
when p=0
。我尝试以下代码:
if(p==1)(X=rnorm(1,0,2))?
解决方案
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)
推荐阅读
- octave - 如何计算一系列 bin 的概率向量和观察计数向量?
- sqlite - 在一个表中最多保留 5 行(Room/Sqlite)
- c - 在使用系统调用制作的 printf 上输出两个字符串时遇到问题
- c - 需要一点帮助来修复 Arduino RFID 程序
- mysql - 用 '\/' 替换反斜杠 '\\' 的 sql 查询
- javascript - 第 1 行出现意外的令牌“{”
- java - getIntent() 返回 null
- python - 由 maplotlib 图组成的 kivy 滚动视图不滚动
- python - 在 AWS EC2 实例的端口 80 启动烧瓶应用程序时权限被拒绝
- java - 从 Java Web 应用程序调用 Oracle 存储过程