【发布时间】:2013-12-28 17:22:48
【问题描述】:
我正在尝试生成排除某些“不良数据”的随机样本。我不知道数据是否“坏”,直到我采样之后。因此,我需要从人群中随机抽取,然后进行测试。如果数据“好”,则保留它。如果数据“不好”,则随机抽取另一个数据并进行测试。我想这样做,直到我的样本量达到 25。下面是我尝试编写一个执行此操作的函数的简化示例。谁能告诉我我错过了什么?
df <- data.frame(NAME=c(rep('Frank',10),rep('Mary',10)), SCORE=rnorm(20))
df
random.sample <- function(x) {
x <- df[sample(nrow(df), 1), ]
if (x$SCORE > 0) return(x)
#if (x$SCORE <= 0) run the function again
}
random.sample(df)
【问题讨论】:
-
你熟悉
?while吗? -
我查看了 ?'while' 和 ?Control 但无法理解如何使用它。
-
那么,画完还要计算吗?在这里,您已经有了
SCORE,只需将那些好的和样本子集即可。 -
@Ananta 那仍然是来自原始人群的随机样本吗?
-
@aseidlitz 它使用上面提到的相同信息“SCORE”,除非示例中没有其他内容,它只是简化为一个简单的子集问题
标签: r function conditional-statements repeat