![](/img/trans.png)
[英]R filter function is returning a dataset full of NA values when run
[英]Function returning a dataset in R
我在R中编写了以下函数,用于将数据集拆分为测试/训练。 我需要我的代码来创建2个称为测试和训练的数据集。 我得到的结果是,但是它正在打印到控制台。 我需要将其创建为数据集。
splt <- function(x,y){
intrain <- sort(sample(nrow(x), nrow(x)*y))
train <- x[intrain,]
test <- x[-intrain,]
train <- data.frame(train)
test <- data.frame(test)
return(test)
return(train)
}
splt(iris,0.75)
我正在R中使用内置的“ iris”数据集。代码的目的是随机抽取75%的数据集并将其存储为“ train”,并将其余的存储为“ test”。 我需要该函数自己创建2个数据框,而不仅仅是在控制台中显示它们。 另外,我不想将其显式分配给函数外部的变量,以创建像train <- splt(iris,0.75)
这样的数据train <- splt(iris,0.75)
。 我希望函数自行创建数据帧。 有什么方法可以做..? 甚至有可能..?
非常感谢您的帮助。
您只能从R中的函数返回单个对象。在上面的代码中,该对象到达return(test)
,并返回该data.frame
。 线路return(train)
永远不会运行。
如果要返回两个data.frames
,可以通过将它们包装在list()
:
splt <- function(x,y){
intrain <- sort(sample(nrow(x), nrow(x)*y))
obj <- list(
"train" = x[intrain,]
"test" = x[-intrain,]
)
return(obj)
}
# get the two data frames from the returned list:
split_data <- splt(iris,0.75)
train <- split_data$train
test <- split_data$test
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.