在过去的两天里,我搜索了论坛和网络,并分解了我的脚本以尝试找到问题,但由于某种原因,我无法让它在第一行之外正常工作:
numbers <- mtcars[1:6,]
nnn <- c(1:(nrow(numbers)))
for (i in nnn){
ly <- numbers[i,]
numbers[i,12]<- sum(abs(ly) < 5e0)
}
这将返回:
> numbers
mpg cyl disp hp drat wt qsec vs am gear carb V12
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 6
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 NA
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 NA
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 NA
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 NA
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 NA
可以看到,当 i 为 1 时,ly 是马自达 rx4 行,它执行
sum(abs(ly) < 5e0)
正确,将值 6 放在新的第 12 列中。然而,除此之外,即使我已经确定它正确地循环通过 i,并为 i 的每次迭代正确返回 ly,它也不会计算行 2:5 的总和部分
对于大多数人来说,我在这里做错了什么可能真的很明显,但对于我的生活,我无法选择它。我是 R 和编程的新手,几乎是自学成才,在过去的几周里,到目前为止,我已经为循环和脚本编写了很多成功的作品,但这让我目瞪口呆。我们研究小组中使用 Matlab 的其他人和我一起解决了这个问题,问题和我一样,她也不明白为什么它也不起作用。
到目前为止,我使用 mtcars 只是为了测试循环,以便论坛上的人可以轻松访问它。一旦我知道它有效,我会为我的数据集(非常大)翻译它。