【发布时间】:2013-11-28 03:41:58
【问题描述】:
这个问题建立在 SO 帖子 found here 并使用从 R-help 邮件列表上的帖子修改的代码,可以是 seen here
我正在尝试在数据框中提取随机行样本,但有条件。使用如下所示的 R iris 数据:
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
要获取一个简单的随机样本,下面的代码可以很好地获取 2 行样本。
iris[sample(nrow(iris), 2), ]
但是我不确定如何调节 Species 字段。例如如何采取上述随机样本,但仅限于Species != “setosa”
iris$Species分为三类
> summary(iris$Species)
setosa versicolor virginica
50 50 50
我不确定如何正确嵌套条件。下面是我早期的尝试之一,其中包括明显不正确的结果……。
> iris[sample(nrow(iris)[iris$Species != "setosa"], 2), ]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
NA NA NA NA NA <NA>
NA.1 NA NA NA NA <NA>
谢谢
【问题讨论】:
-
iris[ sample( which( iris$Species != "setosa" ) , 2 ) , ] -
@SimonO101 作为答案发布。