簡體   English   中英

R:如何通過未知長度的向量進行迭代

[英]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:0c(1,0)

1:0
# [1] 1 0

因此,正如@thelatemail已經引用它們, seq_lenseq_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM