我有這樣一個data.frame df
使用:while循環結構與`apply`
df <- data.frame (x=1:5,y=1:5)
我想用一個apply
功能逐行這個數據幀,在這裏我檢查條件取決於x
和y
,然後更改x
和y
元素,直到它們符合我的條件。在這個例子中,如果x
和y
不加起來爲8,我不斷爲他們選擇新的隨機數字,然後重試。
我想函數使用while
循環將是最好的。所以,我試過如下:
checkchange <- function(x) while(x[1] + x[2] < 8)
{
x[1] <- sample(5,1)
x[2] <- sample(5,1)
return(cbind(x[1],x[2]))
}
然後,我會做這個計劃:
newdf <- apply(df,1,checkchange)
這是行不通的。我應該使用repeat
和break
還是需要更清楚地指定return
值。我們非常感謝while
循環語法。
+1感謝斯文很大的幫助,並搶佔了我的't'。用'ifelse'也可以想到快捷鍵! – user1320502