仅将值写入R dataframe,而不将每个值都包含一个元素的列表

仅将值写入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

我试图运行以下代码来计算不同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(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()
训练数据在写入数据框之前,请尝试取消列表(您的列表)