Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
imap_dfr绑定R中列表列表中的_行_R - Fatal编程技术网

imap_dfr绑定R中列表列表中的_行

imap_dfr绑定R中列表列表中的_行,r,R,我试图在imap\u dfr函数中使用bind\u rows。我有列表列表,因此我希望将“1”、“650”和“1300”(都是数据帧)的结果绑定在一起。我正在尝试使用map\u dfr功能,但似乎无法使其正常工作。我还试图创建一个新的列“model”,其中包含它出现的列表列表 x2 <- imap_dfr( shap_values_results[[1]][[1]]$shap_score, shap_values_results[[1]][[650]]$shap_score,

我试图在
imap\u dfr
函数中使用
bind\u rows
。我有列表列表,因此我希望将“1”、“650”和“1300”(都是数据帧)的结果绑定在一起。我正在尝试使用
map\u dfr
功能,但似乎无法使其正常工作。我还试图创建一个新的列“model”,其中包含它出现的列表列表

x2 <- imap_dfr(
  shap_values_results[[1]][[1]]$shap_score,
  shap_values_results[[1]][[650]]$shap_score,
  shap_values_results[[1]][[1300]]$shap_score,
  .f = bind_rows,
  .id = "model"
)

在这里,我们已经从
列表中提取了data.frame,并且在
imap\u dfr
中不需要
.f=bind_rows
,相反,它可以只是一个占位符标识(
I

out <- imap_dfr(list(`1` = 
      shap_values_results[[1]][[1]]$shap_score,
      `650` = shap_values_results[[1]][[650]]$shap_score,
      `1300` = shap_values_results[[1]][[1300]]$shap_score),
    .f = I,
   .id = "model"
   )

除上述内容外,最好以自动方式进行,即不重复提取

map_dfr(set_names(shap_values_results[[1]][c(1, 650, 1300)], 
     unique(names(shap_values_results[[1]][c(1, 650, 1300)]))), ~ 
            .x$shap_score, .id = "model")

添加了列表列表的结构。我认为
bind_rows
.id
有效…我的
bind_rows
方法的“问题”是它创建了一个
.id
为“1”、“2”和“3”的数据帧。我希望它能将
.id
列创建为“1”、“650”和“1300”。你能添加一个小的可复制数据集吗?我在.f(.x[[I]]、.y[[I]]、…)中得到这个错误
错误:未使用的参数(.y[[I]],shap_值结果[[1][[650]]$shap_分数,shap_值结果[[1][[1300]$shap_分数)
@user113156我想第一个选项现在应该可以用了第一个选项很好用。但是,它对列表数据中的更改不是动态的。也许在
dplyr
管道中使用
case\u就足够了。是的!我想这对我很有用:
outout@user113156我正在用你的版本更新我的帖子
out <- imap_dfr(list(`1` = 
      shap_values_results[[1]][[1]]$shap_score,
      `650` = shap_values_results[[1]][[650]]$shap_score,
      `1300` = shap_values_results[[1]][[1300]]$shap_score),
    .f = I,
   .id = "model"
   )
out <- bind_rows(list(`1` = shap_values_results[[1]][[1]]$shap_score,
      `650` = shap_values_results[[1]][[650]]$shap_score,
      `1300` = shap_values_results[[1]][[1300]]$shap_score), .id = 'model')    
map_dfr(set_names(shap_values_results[[1]][c(1, 650, 1300)], 
     unique(names(shap_values_results[[1]][c(1, 650, 1300)]))), ~ 
            .x$shap_score, .id = "model")