繁体   English   中英

函数返回R中的数据集

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM