web-dev-qa-db-fra.com

Comment tracer un sous-ensemble d'une trame de données dans R?

Y at-il un moyen simple de faire cela dans R: 

plot(var1,var2, for all observations in the data frame where var3 < 155)

C'est possible en créant une nouvelle donnée newdata <- data[which( data$var3 < 155),] mais je dois alors redéfinir toutes les variables newvar1 <- newdata$var1 etc.

14
jinni

with(dfr[dfr$var3 < 155,], plot(var1, var2)) devrait faire l'affaire.

Edit concernant plusieurs conditions:

with(dfr[(dfr$var3 < 155) & (dfr$var4 > 27),], plot(var1, var2))
25
Nick Sabbe

L'option la plus simple:

plot(var1[var3<155],var2[var3<155])

Cela n'a pas l'air bien à cause de la redondance du code, mais c'est ok pour le piratage rapidendirty.

10
mbq

Voici comment je le ferais afin d’obtenir la restriction var4:

dfr<-data.frame(var1=rnorm(100), var2=rnorm(100), var3=rnorm(100, 160, 10), var4=rnorm(100, 27, 6))
plot( subset( dfr, var3 < 155 & var4 > 27, select = c( var1, var2 ) ) )

Rgds, Rainer

4
vaettchen

Ce morceau devrait faire le travail:

plot(var2 ~ var1, data=subset(dataframe, var3 < 150))

Mes meilleures salutations.

Comment ça marche:

  1. Premièrement, nous faisons une sélection en utilisant la fonction de sous-ensemble. D'autres possibilités peuvent être utilisées, telles que, subset (dataframe, var4 == "un peu" & var5> 10). L’opérateur " & " peut être utilisé pour sélectionner tous les "certains" et plus de 10. L’opérateur " | " peut également être utilisé pour sélectionner "certains" ou " plus de 10 ".
  2. L'étape suivante consiste à tracer les résultats du sous-ensemble, à l'aide de l'opérateur tilde (~), impliquant simplement une formule, dans ce cas var.response ~ var.independet. Bien sûr, ce n'est pas une formule, mais fonctionne très bien pour ce cas.
0
André