我正在尝试执行如下函数来平衡火车组与包 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
ovun.sample(...)
相反,当我在本地函数之外调用函数时,一切都很好rose
,即:
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
ovun.sample(..., data=train,...)
我知道在rose()中调用函数时会出现问题,但我不知道为什么。可能是环境变量的问题?
任何想法?