在 R 中使用负下标生成样本非选取值?
Generating sample non-picked values using negative subscripting in R?
这里是统计学生。我的任务是组合两组值,然后将它们组合起来以进行排列测试。在此示例中,我将向量合并为一个,然后使用 sample() 函数提取一半值以找到它们的平均值并将其与另一半进行比较。有人告诉我,我可以使用负下标以某种方式提取未选取的值并将它们放入另一个变量中,以便我可以比较均值。
controls <- c(6.33, 1.65, -3.58, 3.3, -6.6, 3.29, 1.80, 1.80, 2.98) ## group 1
redA <- c(6.84, -9.83, -0.02, -9.12, -0.07, -19.34, 3.97, -16.37, -21.02) ## group 2
allscores <- c(controls, redA) ## combine vectors
allscores ## check new vector
controlIDs <- sample(allscores,9) ## pull out 9 random values
otherIDs <- allscores[-controlIDs] ## get other 9 non-picked values
difference <- mean(controlIDs) - mean(otherIDs) ## compare means
这是我遇到的错误
Error in allscores[-controlIDs] :
only 0's may be mixed with negative subscripts
从概念上讲,当我认为样本是独立的 运行 时,我很难弄清楚 R 是如何使用负下标挑选出未选取的样本值的。
有人可以告诉我这里的代码是否有问题吗?理想情况下,这将起作用,因此可以将其放入 for 循环和 运行 多次以创建值的分布。对于学习如何使用负下标将未选择的值拉出到单独的向量中的任何帮助,我们将不胜感激。 class 调用说整个 allscores 向量都是数字,所以我不认为这是数据类型冲突,但我可能是错的。
谢谢!
错误来自于您从 allscores
中采样值,而您需要这些值的索引来删除它们。
因此您可以改用:
...
idx <- sample(seq_along(allscores),9) ## take 9 random values
controlIDs <- allscores[idx] ## pull out these 9random values
otherIDs <- allscores[-idx] ## get other 9 non-picked values
...
这里是统计学生。我的任务是组合两组值,然后将它们组合起来以进行排列测试。在此示例中,我将向量合并为一个,然后使用 sample() 函数提取一半值以找到它们的平均值并将其与另一半进行比较。有人告诉我,我可以使用负下标以某种方式提取未选取的值并将它们放入另一个变量中,以便我可以比较均值。
controls <- c(6.33, 1.65, -3.58, 3.3, -6.6, 3.29, 1.80, 1.80, 2.98) ## group 1
redA <- c(6.84, -9.83, -0.02, -9.12, -0.07, -19.34, 3.97, -16.37, -21.02) ## group 2
allscores <- c(controls, redA) ## combine vectors
allscores ## check new vector
controlIDs <- sample(allscores,9) ## pull out 9 random values
otherIDs <- allscores[-controlIDs] ## get other 9 non-picked values
difference <- mean(controlIDs) - mean(otherIDs) ## compare means
这是我遇到的错误
Error in allscores[-controlIDs] :
only 0's may be mixed with negative subscripts
从概念上讲,当我认为样本是独立的 运行 时,我很难弄清楚 R 是如何使用负下标挑选出未选取的样本值的。
有人可以告诉我这里的代码是否有问题吗?理想情况下,这将起作用,因此可以将其放入 for 循环和 运行 多次以创建值的分布。对于学习如何使用负下标将未选择的值拉出到单独的向量中的任何帮助,我们将不胜感激。 class 调用说整个 allscores 向量都是数字,所以我不认为这是数据类型冲突,但我可能是错的。
谢谢!
错误来自于您从 allscores
中采样值,而您需要这些值的索引来删除它们。
因此您可以改用:
...
idx <- sample(seq_along(allscores),9) ## take 9 random values
controlIDs <- allscores[idx] ## pull out these 9random values
otherIDs <- allscores[-idx] ## get other 9 non-picked values
...