R:从应用函数返回两个对象

R:从应用函数返回两个对象,r,list,apply,R,List,Apply,我在数据帧预测上循环函数截止,该函数正确地返回一个新的df(correct_pred)。 但是我还想为列表中的每个应用循环保护df百分比。我该怎么做?现在,该函数只保存上次应用运行的df。 我知道函数有点混乱。它曾经是三个独立的函数,最初不应该循环。 请在下面找到代码和生成的输入矩阵。提前谢谢 predictions <- data.frame(col1=runif(200), col2=runif(200)) test <- data.frame(rbinom(200,1,0.5)

我在数据帧预测上循环函数截止,该函数正确地返回一个新的df(correct_pred)。 但是我还想为列表中的每个应用循环保护df百分比。我该怎么做?现在,该函数只保存上次应用运行的df。 我知道函数有点混乱。它曾经是三个独立的函数,最初不应该循环。 请在下面找到代码和生成的输入矩阵。提前谢谢

predictions <- data.frame(col1=runif(200), col2=runif(200))
test <- data.frame(rbinom(200,1,0.5))

cutoff <- function(model){
  Percent <- as.data.frame(matrix(NA,nrow=200,ncol=19))
  for(i in 1:19){
    m = i*0.05
    Percent[,i] <- as.data.frame(ifelse(model <= m, 0, 1))
  }
  Percent <<- data.frame(Percent)
  
  validation <- as.data.frame(matrix(NA,nrow=200,ncol=19))
  for(i in 1:19){
    validation[,i] <- Percent[,i] == test
  }
  validation <- data.frame(validation)
  
  correct_pred <- as.data.frame(matrix(NA,nrow=19,ncol=1))
  for(i in 1:19){
    correct_pred[i,] <-(sum(validation[,i], na.rm = TRUE)/200)
  }
 correct_pred <<- data.frame(correct_pred)
}
correct_pred <<- as.data.frame(apply(predictions,2,cutoff))
correct_pred

预测考虑使用矩阵和向量,并使用apply方法压缩代码,如
sapply
colSums
,并让函数返回多个对象的列表:

set.seed(6521)

预测生成一个列表并返回它
test
对象未在提供的代码中定义,因此
cutoff
不会运行。无论如何,可能的答案是1)在map/apply函数中定义一个lambda函数,该函数使用
对不起!我编辑了我的代码,现在应该可以用了。请你详细说明一下你的确切意思好吗?既然你没有使用所有的数字数据类型,也没有使用列名,为什么要使用data.frames呢。简单地使用矩阵。非常感谢!这是完美的工作,正是我所寻找的。很高兴听到,很高兴能帮助!快乐编码!