关于#bootstrap#的问题,如何解决?

数据是一份调查问卷,想要对这份数据进行扩容
data<-"C:/相关数据/statistics"

getwd()
[1] "C:/Users/乐/Documents"
setwd("C:/相关数据")
bootstrap <- function(data, B) {

  • n <- nrow(data)
    
  • boot.samples <- list()
    
  • for (i in 1:B) {
    
  •     boot.sample <- data[sample(n, replace = TRUE), ]
    
  •     boot.samples[[i]] <- boot.sample
    
  • }
    
  • boot.samples.df <- do.call(rbind, boot.samples)
    
  • return(boot.samples.df)
    
  • }

    bootstrap.data <- bootstrap(data = data, B = 3000 - 285)
    运行完这份数据,然后显示了
    Error in data[sample(n, replace = TRUE), ] :
    incorrect number of dimensions
    接下来该怎么更正错误哇,哪位朋友可以帮忙解答下

incorrect number of dimensions
数据维度不对,用reshape调整维度

该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据你提供的代码,出现错误的地方是在 data[sample(n, replace = TRUE), ] 这一行,报错信息显示是“incorrect number of dimensions”,这意味着数据维度不匹配。

可能的原因是你的数据 data 的格式不正确。在 R 中,数据应该以数据框(data frame)的形式存储。因此,你可以尝试将数据读入为数据框,例如使用 read.csv() 函数。

假设你的数据是以 csv 格式存储的,可以尝试使用以下代码读取数据:

data <- read.csv("C:/相关数据/statistics.csv")

注意,读取数据时,文件路径需要正确指定。

如果你已经将数据读入为数据框,那么可以检查数据框的列数是否正确,或者是否存在缺失值或异常值。你可以使用以下命令检查数据框的基本信息:

str(data)

如果数据框的列数、数据类型等信息正确,那么可以尝试修改 bootstrap() 函数,例如使用 data.frame() 函数将数据转换为数据框:

bootstrap <- function(data, B) {
  n <- nrow(data)
  boot.samples <- list()
  for (i in 1:B) {
    boot.sample <- data.frame(data[sample(n, replace = TRUE), ])
    boot.samples[[i]] <- boot.sample
  }
  boot.samples.df <- do.call(rbind, boot.samples)
  return(boot.samples.df)
}

注意,这里使用 data.frame() 函数将 boot.sample 转换为数据框,再存储到 boot.samples 列表中。

希望这些提示能够帮助你解决问题。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^