【发布时间】:2019-08-09 23:11:34
【问题描述】:
我正在尝试执行如下函数来平衡火车组与包 ROSE:
library(ROSE)
rose <- function(df){
str(df)
set.seed(124)
intrain <- sample(seq_len(nrow(df)), size = floor(0.7 * nrow(df)))
train <- df[intrain,]
train.rose <- ovun.sample(cls ~ ., data=train, N=nrow(train), p=0.5, seed=1, method="both")$data
return(train.rose)
}
data(hacide)
df <- rbind(hacide.train, hacide.test) # just to simulate a complete dataset
rose(df)
调用上述脚本会产生以下错误信息:
Error in terms.formula(formula, data = frml.env) :
'data' argument is of the wrong type
相反,当我在本地函数rose 之外调用ovun.sample(...) 函数时,一切正常,即:
library(ROSE)
data(hacide)
df <- rbind(hacide.train, hacide.test) # just to simulate a complete dataset
str(df)
set.seed(124)
intrain <- sample(seq_len(nrow(df)), size = floor(0.7 * nrow(df)))
train <- df[intrain,]
train.rose <- ovun.sample(cls ~ ., data=train, N=nrow(train), p=0.5, seed=1, method="both")$data
我知道在 rose() 内调用函数 ovun.sample(..., data=train,...) 时会出现问题,但我不知道为什么。会不会是环境变量的问题?
有什么想法吗?
【问题讨论】:
标签: r rstudio rebalancing