递归索引在级别2失败

时间:2017-11-15 13:54:27

标签: r list recursion lm sapply

我试图对R中的线性模型进行重复的随机子采样。为此,我首先创建一个data.table索引列表,用于训练模型然后使用{{1对于该特定子集。以下是使用lm中的diamonds数据集的示例代码:

ggplot2

然后我library(data.table) library(caTools) library(ggplot2) rm(list = ls()) dat <- as.data.table(diamonds)[1:5000,] n <- 20 dat_list <- lapply(1:n, function(z) return(sample.split(dat$carat, SplitRatio = 3/4)) ) 得到不同线性拟合模型的斜率:

sapply

奇怪的是,这在我上次尝试这个时起作用,但今天我得到了以下错误:

dat_list [[z]]出错:递归索引在第2级失败

如果我首先将索引保存到另一个变量,代码似乎有效:

coefs <- sapply(1:n, function(z){
  m <- lm(price ~ carat, data = dat[dat_list[[z]],])
  return(unname(m$coefficients[2]))
})

我已经在SO上看到了其他问题:Getting error "recursive indexing failed at level 2" in R when trying to recurse through listr error recursive indexing failed at level 2 matrixRecursive Index Failed但他们似乎没有回答我的问题?

为什么会出现这种行为,特别是考虑到过去这种行为?我错过了什么吗?

0 个答案:

没有答案