看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 新手(沒寫過程式,R 是我的第一次) [問題敘述]: 請簡略描述你所要做的事情,或是這個程式的目的 要處理data fram裡面的資料 例子如下 no value no value 1 18 1 18 2 0 2 9 (18+0)/2 3 0 ----> 3 4.5 (9+0)/2 4 0 4 12.25 (4.5+20)/2 5 20 5 20 遇到0值時 則拿前一筆與後一筆平均 填入,依序往下處理 請問這樣的for迴圈該如何表示? [環境敘述]: R version 3.1.3 (2015-03-09) Platform: x86_64-redhat-linux-gnu (64-bit) Running under: CentOS release 6.5 (Final) [關鍵字]:data frame, for迴圈 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.76.246.58 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1442893648.A.440.html ※ 編輯: aee36900 (211.76.246.58), 09/22/2015 11:48:00
celestialgod: #1LiHOkAW (R_Language) 09/22 12:09
celestialgod: 還有這篇 #1LiP5n1o (R_Language) 09/22 12:10
感謝 c大提醒 最後參考文章簡單寫個迴圈解決我的需求了 if (x[1]==0) x[1] <- (x[2])/2 if (x[length(x)]==0) x[length(x)] <- (x[length(x)-1])/2 for (i in 2:(length(x)-1)) if(x[i]==0) x[i] <- (x[i-1]+x[i+1])/2 (看起來有點遜的感覺@@) ※ 編輯: aee36900 (211.76.246.58), 09/22/2015 16:19:34
andrew43: 頂多比較慢,哪裡遜?能解決問題最重要。 09/22 16:57
celestialgod: 樓上說的沒錯XD 09/22 17:02