使用数据集
df
,我从 v
的各种值中采样,再加上 x
以生成随机的 J
(如函数中所示)。存储的随机化输出是结果。除了 rand.cor = f(x,v),我还希望该表生成它为运行选择的相关均值和方差。我尝试添加一个x,v
,但我注意到它只是重复原始x
和v
中的向量,而不是随机的向量。
set.seed(333)
J <- rnorm(40, 5, 1)
x <- rnorm(40, 2, 1)
v <- rnorm(40, 10, 1)
sp <- rep(c("A","B","C","D"), each = 10)
df <- data.frame(J,x,v,sp)
library(data.table)
setDT(df)
#function to estimate model coefficients
f <- function(x,v) {v.sample <- sample(v, length(v), replace=T)
y.sample <- (v.sample/x^2) - (1/x)
per <- cor(y.sample, x, use = "complete.obs")}
# 999 models for each species
result = rbindlist(
lapply(1:999, \(i) df[,.(rand.cor = f(x,v), x, v), sp][, i:=i])
)