r - 遍历R中的序列和舍入问题
问题描述
我想为一个向量分配一些值,例如:
a = rep(0, 101)
for(i in seq(0, 1, 0.01)){
u <- 100 * i + 1
a[u] <- u
}
a
plot(a)
输出是
> a
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 0 31 32 33 34
[35] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 0 60 61 62 63 64 65 66 67 68
[69] 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
29号和59号元素都有问题。它们应该是 29 和 59,但结果是 0,即默认值。而之前的值,第 28 和第 58,也是不正确的。为什么会这样?谢谢!
解决方案
你的索引有问题。我不知道如何解释为什么它不能像所写的那样工作,但这里是对你的代码的修改:
a = rep(0, 101)
s<-seq(0, 1, 0.01)
for(i in 1:101){
a[i] <- 100 * s[i] + 1
}
a
plot(a)
一般来说,最好避免在同一个循环中使用多个索引,因为这可能会造成混淆并且难以诊断问题。
推荐阅读
- matplotlib - How to do circle clipping for matplotlib AnnotationBbox?
- amazon-web-services - AWS CFN error "The parameter groupName cannot be used with the parameter subnet"
- mysql - Compare values from two time-stamps and calculate difference
- unity3d - Unity - Custom Editor - data refresh
- excel - How this macro works in Excel vba?
- python - Python(bs4) wiki page scrape
- c++ - 在 C++ 中有效的打印数组
- c# - multiple Task for multiple folder's files processing
- .net - VB.Net String in Vietnamese Character
- php - Database connection Host is unknown