我有这样一个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