在 r 中有 for 循环跳过一些值
Have for loop in r skip some values
我遇到以下问题,但找不到解决方案:
- 我有一个数据框,其中包含我在上一个循环中计算的 N 个样本大小(现在称为 'size')
- 我创建了一个新循环,对于 'size' 的每个值,我都想计算一些东西。是按以下方式做的:
samplesize <- numeric(N)
for (i in 1:N){
samplesize <- size[i,]
# Make storage for the calculated values
store <- matrix(data = NA, nrow = samplesize, ncos = N)
# Get random number from normal distribution N times
for (a in 1:N){
store[,i] <- rnorm(n = samplesize, mean = avg, sd = stdvn)
}
}
如您所见,我在循环中插入 'size' 的当前值以进行一些存储并获得一些随机数。但是,问题是 'size' 的某些值是零。这会导致生成 'store' 时出错,因为我询问它是否要生成零行。然后,它还会给出获取随机数的错误,因为我要求 n 为 0。我需要将 'store' 的数字添加到先前计算的值中,因此不希望将零变成一个,因为那时我会添加一个附加值,而 is 实际上应该为零。我想我想要的是循环跳过 'size' 的所有零值。有没有人有关于如何做到这一点的解决方案?非常感谢!
我认为您正在寻找的可能是 next
命令与 if
配对进行测试:
for (i in 1:10) {
if(i == 3) {
next
}
print(i)
}
#> [1] 1
#> [1] 2
#> [1] 4
#> [1] 5
#> [1] 6
#> [1] 7
#> [1] 8
#> [1] 9
#> [1] 10
(运行 使用一些快速示例代码,因为如果没有您以前的数据,我无法完全 运行 您的示例。如果它不起作用,您可以尝试向您的问题添加一些示例数据- size
、N
、avg
和 stdvn
我认为是您在这里调用但未定义的内容。)
由 reprex package (v2.0.1)
于 2021-12-07 创建
我遇到以下问题,但找不到解决方案:
- 我有一个数据框,其中包含我在上一个循环中计算的 N 个样本大小(现在称为 'size')
- 我创建了一个新循环,对于 'size' 的每个值,我都想计算一些东西。是按以下方式做的:
samplesize <- numeric(N)
for (i in 1:N){
samplesize <- size[i,]
# Make storage for the calculated values
store <- matrix(data = NA, nrow = samplesize, ncos = N)
# Get random number from normal distribution N times
for (a in 1:N){
store[,i] <- rnorm(n = samplesize, mean = avg, sd = stdvn)
}
}
如您所见,我在循环中插入 'size' 的当前值以进行一些存储并获得一些随机数。但是,问题是 'size' 的某些值是零。这会导致生成 'store' 时出错,因为我询问它是否要生成零行。然后,它还会给出获取随机数的错误,因为我要求 n 为 0。我需要将 'store' 的数字添加到先前计算的值中,因此不希望将零变成一个,因为那时我会添加一个附加值,而 is 实际上应该为零。我想我想要的是循环跳过 'size' 的所有零值。有没有人有关于如何做到这一点的解决方案?非常感谢!
我认为您正在寻找的可能是 next
命令与 if
配对进行测试:
for (i in 1:10) {
if(i == 3) {
next
}
print(i)
}
#> [1] 1
#> [1] 2
#> [1] 4
#> [1] 5
#> [1] 6
#> [1] 7
#> [1] 8
#> [1] 9
#> [1] 10
(运行 使用一些快速示例代码,因为如果没有您以前的数据,我无法完全 运行 您的示例。如果它不起作用,您可以尝试向您的问题添加一些示例数据- size
、N
、avg
和 stdvn
我认为是您在这里调用但未定义的内容。)
由 reprex package (v2.0.1)
于 2021-12-07 创建