2009-12-20 4 views
2

J'ai une trame de données avec deux colonnes (les données ne seront pas toujours identiques).Création de colonne conditionnelle

1 1 
2 2 
3 3 
0 0 
-1 -1 
-2 -2 
-3 -3 

Ce que je voudrais faire est de créer une autre colonne pour les 10% de la colonne et les 10% en bas de la colonne à utiliser comme marqueurs pour un diagramme de dispersion.

1 1 
2 2 
3 3 1 
0 0 
-1 -1 
-2 -2 
-3 -3 2 

En outre, il doit être en mesure de choisir et l'étiquette de colonne soit le haut/bas 10%

Toutes les idées?

Répondre

4

Votre question est un peu ambiguë. Qu'est-ce que "de l'échelle à utiliser dans les sorties jpeg". signifier? Les deux colonnes sont-elles toujours identiques? Peut-être que vous cherchez quelque chose comme ce qui suit:

> dat<-data.frame(a=c(-(1:3),0:3)) 
> low<-quantile(dat$a,.1) 
> high<-quantile(dat$a,.9) 
> dat$flag<-NA 
> dat$flag[dat$a<=low]<-1 
> dat$flag[dat$a>high]<-2 
> dat 
    a flag 
1 -1 NA 
2 -2 NA 
3 -3 1 
4 0 NA 
5 1 NA 
6 2 NA 
7 3 2 
2

Merci pour la réponse Ian, je me rends compte de la question elle-même n'a pas été très bien formé mais j'avais du mal à expliquer ce que je voulais. Avec votre aide, j'ai été capable de le mettre ensemble:

top <- subset(data, data$column > quantile(data$column, 0.85))  
bottom <- subset(data, data$column < quantile(data$column, 0.15)) 
listing <- rbind(top,bottom) 
label <- 1:nrow(listing) 
listing[sort.list(listing$Distance, decreasing=T),] 
Questions connexes