修改上述代码使之顺利运行:> sampled_first_phase <- full_grid[sample_n(full_grid, first_phase_sample_size), ] 错误于xj[i]: 类别为'list'的下标无效
时间: 2024-10-08 19:03:35 浏览: 18
看起来你在尝试从`full_grid`数据框中随机选取样本的时候遇到了这个问题,因为`sample_n`通常用于数值向量而不是列表。由于`full_grid`是一个二维数据框,我们可以直接指定行索引来获取样本,无需使用`sample_n`。假设`x1`和`x2`是列名,你可以这样做:
```R
# 确保列名为x1和x2,如果不是,请替换为你的真实列名
sampled_first_phase <- full_grid[order(rowSums(full_grid[, c("x1", "x2")])), 1:first_phase_sample_size]
```
这里我们首先对每一行的`x1`和`x2`之和进行排序,然后选择前`first_phase_sample_size`行作为第一个阶段的样本。
如果你确实需要使用`sample_n`,你需要将`full_grid`转换为向量形式,然后再应用它。但是请注意,这可能会导致信息丢失,因为我们将失去列的顺序:
```R
flat_grid <- as.matrix(full_grid[, c("x1", "x2")])
sampled_first_phase <- flat_grid[sample(nrow(flat_grid), first_phase_sample_size), ]
```
在这个版本中,`flat_grid`是一个矩阵,可以直接传递给`sample_n`。
如果还有其他问题,例如关于如何正确地组织数据以便后续处理,请告诉我,我会给出进一步的帮助。
阅读全文