[英]R: How to phrase iterating through a vector of unknown length
弄清楚了。 可以刪除。
我正在尋找平均值的單個整數,以最小化E yi(xi-u)^ 2的最小二乘,其中“E”是大的總和。 所以,(1 *((0.1-0.108)^ 2))+(2 *((0.11-0.108)^ 2))+ ...
這個怎么說在R? len不是一個函數,length使用與實際長度相對應的數值...不是從開始徹底迭代而是長。
x<-c(0.1, 0.11, 0.111, 0.1111)
y<-c(1, 2, 3, 4)
avg = mean(x)
for (i in 1:length(x)) {
for (j in 1:length(y)) {
mu = sum(j*(i-avg)^2)
print(mu)
}
}
我完全不確定你的問題是什么,但我會借此機會說出來
for (i in 1:length(x))
...
這不是一個好習慣,因為它會在x
長度為0時中斷。原因是R: 1:0
是c(1,0)
:
1:0
# [1] 1 0
因此,正如@thelatemail已經引用它們, seq_len
或seq_along
是迭代向量或列表上的索引的正確方法:
for (i in seq_along(x))
...
seq_len
時間更長,可讀性seq_len
:
for (i in seq_len(length(x)))
...
從你的問題看來,你似乎很想迭代矢量或列表的元素,所以你可以簡單地說
for (elem in x)
...
還要注意的是,在R您可以用向量工作,而不是寫for
循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.