我有一个df
这样的data.frame:
df <- data.frame (x=1:5,y=1:5)
apply
我想对这个数据框逐行使用函数,在其中检查一个依赖于x
and的条件,y
然后更改x
andy
元素,直到它们满足我的条件。在这个例子中,如果x
加起来y
不等于 8,我会不断为它们挑选新的随机数,然后再试一次。
我认为apply
使用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
and abreak
还是需要return
更清楚地指定一个值。while
非常感谢循环语法帮助。