R 使用模型加快行的复制
我想为一个整数自变量(iv1)创建复制预测,给定一些模型和一个称为训练的数据框架。这是我目前的做法。我理解这不是自包含的,但希望它是自解释的:R 使用模型加快行的复制,r,R,我想为一个整数自变量(iv1)创建复制预测,给定一些模型和一个称为训练的数据框架。这是我目前的做法。我理解这不是自包含的,但希望它是自解释的: number_of_samples <- 10 results <- NULL for (row in 1:nrow(training)) { fake_iv1_values <- sample(1:100, number_of_samples) case <- training[row,] for (
number_of_samples <- 10
results <- NULL
for (row in 1:nrow(training)) {
fake_iv1_values <- sample(1:100, number_of_samples)
case <- training[row,]
for (iv1 in fake_iv1_values) {
case$iv1 <- iv1
case$prediction <- predict(some_model, newdata = case)
results <- rbind(results, case)
}
}
样本数试试这个
可复制的假数据和模型:
# create fake data
n_row <- 100
n_xs <- 100
training <- data.frame(y = rnorm(n_row), iv1 = rnorm(n_row))
training[, paste0("x",1:n_xs)] <- replicate(n_xs, list(rnorm(n_row)))
# example model
some_model <- lm(y~., training)
#创建假数据
我认为你可以直接做预测(一些模型,newdata=fake\u iv1\u值)
。在R中,许多函数都是矢量化的。但是,如果您共享一个训练和伪iv1_值的示例,那么测试它应该更容易。@Edo-这不会起作用,因为还有其他独立的值,但我认为我可以先创建一个复制案例的数据框,然后在一次扫描中使用模型并附加预测。我可以假设训练和一些\u模型
如下所示<代码>培训是的,但更多xs
number_of_samples <- 10
results <- NULL
# vector of several fake_iv1_values vectors
fake_iv1_values <- as.numeric(replicate(nrow(training), sample(1:100, number_of_samples)))
# replicate each row of the original dataframe
results <- training[rep(seq_len(nrow(training)), each = number_of_samples), ]
# add fake values to the replicated dataframe
results$iv1 <- fake_iv1_values
# get predictions
results$prediction <- predict(some_model, newdata = results)