首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个R函数移除列表中的一个元素并将所有元素存储在另一个列表中

是否有一个R函数移除列表中的一个元素并将所有元素存储在另一个列表中
EN

Stack Overflow用户
提问于 2019-10-21 13:20:03
回答 1查看 53关注 0票数 2

我在一个列表中有3个数据集,我想使用测试和培训数据的所有组合来构建一个模型。例如:

  • 模型1:列车数据- 1,2,测试数据-3
  • 模型2:列车数据- 1,3,测试数据-2
  • 模型3:列车数据- 2,3,测试数据- 1

我现在所用的方法是费劲的,并不聪明。这里有一个例子,我的问题是,我如何自动化这个过程?

代码语言:javascript
复制
Day1 <- data.frame(x = c(1,2,3))
Day2 <- data.frame(x = c(4,5,6))
Day3 <- data.frame(x = c(7,8,9))

Days <- list(Day1,Day2,Day3)

Test <- list()
Train <- list()

Train[[1]] <- bind_rows(Day1, Day2)
Test[[1]] <- Day3
Train[[2]] <- bind_rows(Day1,Day3)
Test[[2]] <- Day2
Train[[3]] <- bind_rows(Day2,Day3)
Test[[3]] <- Day1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-21 13:29:19

我们可以使用combn创建所有索引组合,然后使用lapplyTrain选择这些元素,并从Test中删除这些元素。

代码语言:javascript
复制
train_inds <- combn(seq_along(Days), 2, simplify = FALSE)
Train <- lapply(train_inds, function(x) dplyr::bind_rows(Days[x]))
Test <- lapply(train_inds, function(x) dplyr::bind_rows(Days[-x]))

检查输出

代码语言:javascript
复制
Train
#[[1]]
#  x
#1 1
#2 2
#3 3
#4 4
#5 5
#6 6

#[[2]]
#  x
#1 1
#2 2
#3 3
#4 7
#5 8
#6 9

#[[3]]
#  x
#1 4
#2 5
#3 6
#4 7
#5 8
#6 9

Test
#[[1]]
#  x
#1 7
#2 8
#3 9

#[[2]]
#  x
#1 4
#2 5
#3 6

#[[3]]
#  x
#1 1
#2 2
#3 3
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58487197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档