【发布时间】:2021-08-27 13:39:30
【问题描述】:
我想循环一个包含数据模拟参数的数据帧。理想情况下,我可以避免为此编写 for loop 并在 tidyverse 中进行,但我还没有找到可行的解决方案。
考虑一个带参数的数据框:
grouping1 <- c('a','a', 'a', 'b', 'b', 'b')
grouping2 <- c('A','A', 'B', 'B', 'C', 'C')
grouping3 <- c('1','2', '3', '4', '5', '6')
observations <- c(14, 14, 12, 12, 15, 15)
average <- c(334, 336, 243, 645, 233, 625)
variance <- c(2, 6, 7, 9, 2, 6)
my_data <- cbind(grouping1,grouping2,grouping3,observations,average,variance)
还有一个简单的管道来根据这些参数模拟值:
my_generated_data <- my_data %>%
group_by(grouping1,grouping2,grouping3) %>%
rnorm(n=observations, mean=average, sd=variance)
但这不起作用。一方面,我收到关于未使用的“。”的错误。论点,但以下也不起作用:
my_generated_data <- my_data %>%
group_by(grouping1,grouping2,grouping3) %>%
rnorm(n=.$observations, mean=.$average, sd=.$variance)
另一个问题是生成的观察数量因分组级别(例如 12、14 或 15)而异。这不应该是一个主要问题,但这确实意味着生成的数据帧必须很长,而不是很宽,因为行数不均匀。提前感谢您的帮助。
【问题讨论】:
标签: r dplyr simulation