r - R中的runif(或者我)有什么问题?
问题描述
我正在尝试从均匀分布中生成一个随机变量,该随机变量也取决于随机变量。
理想情况下,我也想z2
成为一个随机变量。
例如,
set.seed(123)
#generate first random variable z1
z1 <- runif(10,0,1)
#generate secondrandom variable z2
z2 <- ifelse(z1>= 0.7, runif(1,0.6,0.9), runif(1,0.2,0.5))
df <- data.frame(z1,z2)
但是如果你看z2
它只包含两个层次。
z1 z2
1 0.2875775 0.3360002
2 0.7883051 0.8870500
3 0.4089769 0.3360002
4 0.8830174 0.8870500
5 0.9404673 0.8870500
6 0.0455565 0.3360002
7 0.5281055 0.3360002
8 0.8924190 0.8870500
9 0.5514350 0.3360002
10 0.4566147 0.3360002
我们可以生成 1000 个数字并总结结果。
set.seed(123)
#generate first random variable z1
z1 <- runif(1000,0,1)
#generate secondrandom variable z2
z2 <- ifelse(z1>= 0.7, runif(1,0.6,0.9), runif(1,0.2,0.5))
table(df$z2)
0.352099318057299 0.655542095610872
707 293
解决方案
您z2
使用矢量化方法进行计算。因此,当您使用 时runif(1 ,0.6,0.9)
,您实际上只提取了一个数字。但是,如果你这样做runif(length(z1) ,0.6,0.9)
,你将拉动 z1 的长度。
set.seed(123)
#generate first random variable z1
z1 <- runif(1000,0,1)
#generate second random variable z2
z2 <- ifelse(z1 >= 0.7, runif(length(z1) ,0.6,0.9), runif(length(z1),0.2,0.5))
df <- data.frame(z1,z2)
table(df$z2)
推荐阅读
- neo4j - neo4j apoc.cypher.run - 无法开始工作 - 说语法错误,但真的是身份验证?
- java - 将时区设置为 UTC,它已经是 UTC
- html - 显示页码时出错。从 HTML 转换为 PDF
- python - 在 python tkinter 画布中更改线的坐标
- jquery - 如何在jquery中用@请求一个url?
- c# - DataContext.Connection 是否跨不同的 Datacontexts 共享设置
- snmp - (Zabbix internals) Zabbix 如何检查 snmp_available hosts 状态?
- sqlite - 更新记录及其与 sequelize 的关联
- ios - 以曲线形状剪切贝塞尔路径
- javascript - 复制一个单元格内容并将其粘贴到另一个单元格的脚本?