Extraction d'un échantillon aléatoire de lignes dans un data.frame avec un conditionnel imbriqué

Cette question s'appuie de la poste trouvé ici et utilise un code qui a été modifié à partir d'un poste sur la R-aider à la liste de diffusion qui peut être vu ici

Je suis en train d'extraire un échantillon aléatoire de lignes dans un bloc de données mais avec un conditionnel. À l'aide de la R iris de données qui ressemble à:

> 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 

De prendre un échantillon aléatoire simple, le code ci-dessous fonctionne très bien pour prendre un échantillon de 2 lignes.

iris[sample(nrow(iris), 2), ]

Mais j'ai des doutes sur la condition de l'Espèce de champ. Par exemple, comment prendre de l'échantillon aléatoire comme indiqué ci-dessus, mais seulement lorsque Species != “setosa”

Il existe trois catégories de iris$Species

> summary(iris$Species)
    setosa versicolor  virginica 
        50         50         50

Je ne suis pas sûr comment correctement nid conditions. L'une de mes premières tentatives de est ci-dessous avec l'évidence des résultats incorrects....

> 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>

Grâce

source d'informationauteur B. Davis | 2013-11-14