我在为回归预测编程数据生成函数时遇到了一点障碍。人们通常会做我想做的事情(不像我想做的那样自动化),是做以下事情:
#### Fit Data ####
fit <- lm(Petal.Length ~ Petal.Width + Sepal.Width,iris)
#### Create Test Data ####
newdata <- data.frame(
Petal.Width = mean(iris$Petal.Width),
Sepal.Width = seq(
min(iris$Sepal.Width),
max(iris$Sepal.Width),
length.out = 100
)
)
#### Generate Predictions ####
pred <- predict(fit,newdata=newdata)
pred
这个想法是你选择一个感兴趣的变量,并通过将它们设置为均值来控制其他值,然后预测数据。因此,这将为您提供以下预测值:
然而,我可能不得不一遍又一遍地做这件事,每次都手工编写代码不会很有效率,所以我希望用一个自定义函数来自动化它。
测试用例
到目前为止,这就是我试图自动化这个过程的方法,但显然没有帮助。这个想法是让函数把除了一个变量之外的所有变量作为它们的均值,然后选择一个变量作为一个序列号(从它的最小值到最大值),就像我上面所做的那样。生成的数据还应该保留插入的预测器的名称(因此当输入到函数时,它们应该说“test1”等等):
#### Create Test Data ####
test.data <- data.frame(
test1 = rnorm(100),
test2 = rnorm(100),
test3 = rnorm(100),
test4 = rnorm(100)
)
#### Make Function ####
gen.seq <- function(data,x1,x2,x3,x4){
data <- data
newdata <- data.frame(
x1 = mean(data$x1, na.rm = T),
x2 = mean(data$x2, na.rm = T),
x3 = mean(data$x3, na.rm = T),
x4 = seq(
min(data$x4, na.rm = T),
max(data$x4, na.rm = T),
length.out = 100
)
)
}
#### Generate Mean Controlled Data ####
gen.seq(test.data,
test1,
test2,
test3,
test4)
如果可能的话,我还希望它在这个函数中包含predict
函数,但是如果不先完成数据生成步骤,那么现在这样做是徒劳的。我该如何实现这一点?
2条答案
按热度按时间c9qzyr3d1#
我想你想要的效果包可以很容易地实现
导致
dsf9zpds2#
一个更一般/不可知的答案,它只是创建了一个框架,
导致