迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

使用 R 中不同的均值和 Sd 值模拟许多观测值的 Rnorm

作者:迹忆客 最近更新:2023/03/21 浏览次数:

本文将演示在 R 中使用不同的 meansd 值模拟 rnorm 的多种方法。

使用 Map 函数模拟 R 中许多观察的 rnorm

rnorm 函数用于生成正态分布的随机偏差,假定默认 mean 等于 0,标准偏差 (sd) 是 1。请注意,后面的参数可以作为元素向量选择性地传递。在这种情况下,我们将预定义的 meansd 值存储为数据框的一部分。Map 函数将给定的函数对象应用于多个向量的相应元素。它将函数对象作为第一个参数,将向量对象作为后面的参数。请注意,向量对象的数量应等于给定函数对象的强制参数。在以下示例中,我们为每个 data 元素生成 5 个偏差。此外,我们使用 set.seed 函数来指定多个程序执行之间可重现结果的种子值。Map 函数返回一个 list 对象。

set.seed(123)
df1 <- data.frame(
  data = sample(1:64, 4),
  mean = sample(1:64, 4),
  sd = c(1, 4, 8, 20)
)

n <- 5
func1 <- function(x, y) rnorm(n, mean = x, sd = y)
list1 <- Map(func1, df1$mean, df1$sd)
list1

输出:

[[1]]
[1] 3.129288 4.715065 3.460916 1.734939 2.313147

[[2]]
[1] 40.21735 46.89633 43.43926 43.60309 42.44273

[[3]]
[1] 45.55327 64.29531 53.98280 34.26706 55.61085

[[4]]
[1] 44.54417 32.64353 49.64050 33.47991 39.42218

使用 apply 函数模拟 R 中许多观察的 rnorm

或者,我们可以使用 apply 函数来模拟数据框中不同行的 rnormapply 函数通常用于返回将给定函数对象应用于数组或矩阵的指定边距的值。使用名为 MARGIN 的第二个参数指定边距。MARGIN 参数可以具有 1 的值,表示要应用于矩阵行的函数。另一方面,值 2 表示矩阵的列,而 c(1,2) 表示矩阵的行和列。apply 函数的第一个参数可以是数组或矩阵。但是请注意,如果传递的对象不是数组,则会使用 as.matrixas.array 函数将其强制转换为数组类型。

set.seed(123)
df1 <- data.frame(
  data = sample(1:64, 4),
  mean = sample(1:64, 4),
  sd = c(1, 4, 8, 20)
)

n <- 5
func1 <- function(x) rnorm(n, mean = x[1], sd = x[2])
apply(df1[-1], 1, FUN = func1)

输出:

         [,1]     [,2]     [,3]     [,4]
[1,] 3.129288 40.21735 45.55327 44.54417
[2,] 4.715065 46.89633 64.29531 32.64353
[3,] 3.460916 43.43926 53.98280 49.64050
[4,] 1.734939 43.60309 34.26706 33.47991
[5,] 2.313147 42.44273 55.61085 39.42218

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

R 中具有多个条件的函数向量化

发布时间:2023/03/21 浏览次数:64 分类:编程语言

一项常见的数据分析任务是根据同一行的其他列使用一个或多个条件创建或更新数据框列。 如果我们尝试使用 if 语句来执行此操作,则只会使用第一行来测试条件,并且会根据该行更

在 R 中读取 xlsx 文件

发布时间:2023/03/21 浏览次数:66 分类:编程语言

在这篇文章中,你将会了解到两个在 R 中读取 xlsx 文件的最完整和最容易使用的库:readxl 和 openxlsx。

清理 R 的环境

发布时间:2023/03/21 浏览次数:178 分类:编程语言

在本教程中,你将学习如何在 R 中编写一个函数,在不需要重新启动 R 的情况下清除环境。

在 R 中注释掉多行

发布时间:2023/03/21 浏览次数:63 分类:编程语言

在本文中,你将学习如何在 R 中注释出多行,而不必在每一行的开头手动写一个#字符来注释。

在 R 中清除内存

发布时间:2023/03/21 浏览次数:197 分类:编程语言

在本教程中,你将学习如何清除 R 系统占用的内存,而不必重新启动它或重新启动它运行的计算机。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便