仅将值写入R dataframe,而不将每个值都包含一个元素的列表
我试图运行以下代码来计算不同dof值列表(来自mses数据帧)的训练和测试MSE。逻辑和计算工作正常,除了写入数据框列的值是每个列都有一个元素的列表。如何将值直接写入数据帧而不是列表仅将值写入R dataframe,而不将每个值都包含一个元素的列表,r,dataframe,tidyverse,R,Dataframe,Tidyverse,我试图运行以下代码来计算不同dof值列表(来自mses数据帧)的训练和测试MSE。逻辑和计算工作正常,除了写入数据框列的值是每个列都有一个元素的列表。如何将值直接写入数据帧而不是列表 library(tidyverse) library(tidymodels) mses <- data.frame(dof = c(4, 5, 6, 7, 8, 9, 10, 11, 12)) %>% mutate(train_mse = 0, test_mse = 0) for
library(tidyverse)
library(tidymodels)
mses <- data.frame(dof = c(4, 5, 6, 7, 8, 9, 10, 11, 12)) %>%
mutate(train_mse = 0,
test_mse = 0)
for(row in 1:nrow(mses)) {
data_prep <- data_train %>%
recipe(y~x) %>%
step_ns(x, deg_free = mses[row,]$dof) %>%
prep()
train_data_baked <- bake(data_prep, new_data = NULL)
test_data_baked <- bake(data_prep, new_data = test_data)
fit <- lm_mod %>%
fit(y ~ ., data = train_data_baked)
data_train_pred <- augment(fit, train_data_baked)
data_test_pred <- augment(fit, test_data_baked)
mses[row,]$train_mse <- rmse(data_train_pred, truth = y, estimate = .pred) %>% pull(.estimate)
mses[row,]$test_mse <- rmse(data_test_pred, truth = y, estimate = .pred) %>% pull(.estimate)
}
mses
dof train_mse test_mse
5 7.86411 7.417473
6 7.799764 7.469411
7 7.774885 7.443789
8 7.652001 7.377031
9 7.224786 6.844998
10 4.369653 4.189723
11 5.614708 5.741194
12 4.388925 4.146042
13 4.137634 3.746277
库(tidyverse)
图书馆(tidymodels)
mses%
突变(序列μmse=0,
测试(mse=0)
用于(第1行:nrow(mses)){
数据准备%
配方(y~x)%>%
步长(x,自由度=毫秒[行]$dof)%>%
prep()
训练数据在写入数据框之前,请尝试取消列表(您的列表)