【发布时间】:2012-10-31 07:27:51
【问题描述】:
我有一个这样的data.frame df:
df <- data.frame (x=1:5,y=1:5)
我想对这个数据框逐行使用apply 函数,我在其中检查依赖于x 和y 的条件,然后更改x 和y 元素直到满足我的条件。在此示例中,如果 x 和 y 加起来不等于 8,我会继续为它们挑选新的随机数并重试。
我认为使用while 循环的apply 函数是最好的。所以我尝试了以下方法:
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循环语法帮助。
【问题讨论】:
标签: r while-loop