r - 如何使用主 data.frame 将 anti_join 应用于 data.frames 列表
问题描述
我有一个按类别随机分层的 data.frames 列表,以获得 70% 的原始数据集。我想反加入 data.frames 列表以获得由剩余 30% 数据组成的单独 data.frames 列表。
require(splitstackshape)
n <- 10
heads <- "bc_title4"
train_split <- function(x) {
listofdfs <- list()
for(i in 1:n){
df <- stratified(x, 1, 0.7)
listofdfs[[i]] <- df
}
return(listofdfs)
}
train_list <- train_split(survey_points) #returns data.frame list to environment
test_split <- function(x) {
listofdfs2 <- list()
for(i in train_list){
df <- x[!x$id %in% data.frame(train_list[i])$id,]
listofdfs2[[i]] <- df
}
return(listofdfs2)
}
test_list <- test_split(survey_points)
但是,当我收到以下错误时,我不知道如何为 antijoin 编写函数:
Error in train_list[i] : invalid subscript type 'list'
6.
data.frame(train_list[i])
5.
x$id %in% data.frame(train_list[i])$id
4.
x$id %in% data.frame(train_list[i])$id
3.
`[.data.frame`(x, !x$id %in% data.frame(train_list[i])$id, )
2.
x[!x$id %in% data.frame(train_list[i])$id, ]
1.
test_split(survey_points)
尝试使用函数 anti_join 时出现同样的错误:
test_split <- function(x) {
listofdfs2 <- list()
for(i in train_list){
anti_join(x, data.frame(train_list[i]), by = "id")
listofdfs2[[i]]
}
return(listofdfs2)
}
test <- test_split(survey_points)
Error in train_list[i] : invalid subscript type 'list'
9.
data.frame(train_list[i])
8.
tbl_vars(y)
7.
check_valid_names(tbl_vars(y), warn_only = TRUE)
6.
anti_join.tbl_df(tbl_df(x), y, by = by, copy = copy, ...)
5.
anti_join(tbl_df(x), y, by = by, copy = copy, ...)
4.
as.data.frame(anti_join(tbl_df(x), y, by = by, copy = copy, ...))
3.
anti_join.data.frame(x, data.frame(train_list[i]), by = "id")
2.
anti_join(x, data.frame(train_list[i]), by = "id")
1.
test_split(survey_points)
解决方案
推荐阅读
- r - 用 R 对股票市场进行回测
- django - 如何在 Django 2.1 中将多个 slug 添加到一个 url 路径中?
- java - 如何使用 Java 计算此文件中的整数个数?
- r - R-特定组内数据框中行的特定合并
- c# - 如何使用复选框关闭另一个表单
- javascript - 在 VueJS 中转换观察者对象
- c# - System.Data.SqlClient.SqlException:列名“Gender_id”无效
- javascript - React 通过函数集成组件(HOC)
- mysql - MySQL 无法比较文本
- python - 如果我接收 UDP 数据的速度快于我的程序可以处理的速度,我的失败点是什么?