0
我對這樣一個簡單的問題感到啞巴,但我似乎無法找到辦法,儘管我確信有很多方法。解釋我的問題最簡單的方法可能是展示一個例子,我有一些我想要應用的程序。如何獲得一個循環不覆蓋結果?
FUN<- function(v1, v2, v3){
n=length(v1)
res <- vector()
for (i in 1:n){
if(v1[i]>v2[i]) (res[i] <- v3[i+2])
else(res[i] <- v1[i+2])}
return(res)}
的輸入是兩個矢量和矩陣,全部爲相同的長度
matrix <- matrix(runif(30),ncol=3)
v2 <- runif(10)
v3 <- rnorm(10)
這樣當我運行循環的一個包括函數我可以i
次,每次執行程序輸出到矩陣中的不同列。我已經嘗試過類似幾個類似的「版本」,但沒有運氣。
for (i in 1:3)(
r <- matrix()
r[re,i] <- re <- FUN(matrix[,i], v2, v3))
任何人都可以幫我嗎?
你在'FUN循環'用'n'元素訪問元素'n + 1'和'n + 2'的矢量 - 這是一個錯字嗎? – josliber
矩陣'r'中沒有'i'列,它是一個空矩陣。此外,在for()位後面需要括號'{...}',如'for(){....}',而不是括號。 –
除此之外,您每次都在循環中創建一個新矩陣! – Baumann