2017-07-11 1 views
-2

J'ai besoin de trier une trame de données par une colonne provenant d'un appel de fonction. J'ai créé une série d'instructions if pour attribuer le nom de colonne appropriée à la variable outcol:R Trame de données triée par variable Renvoie une ligne

if (outmeasure == "heart attack") { 
     outcol <- "Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack" 
    } else if (outmeasure == "heart failure") { 
     outcol <- "Hospital.30.Day.Death..Mortality..Rates.from.Heart.Failure" 
    } else if (outmeasure == "pneumonia") { 
     outcol <- "Hospital.30.Day.Death..Mortality..Rates.from.Pneumonia" 

pour commander mon trame de données par l'un des nom de la colonne ci-dessus fonctionne:

temp <- temp[with(temp, order(Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack)), ] 

Data frame ordered by column name

Mais j'ai besoin d'utiliser la variable outcol, qui renvoie une ligne (non triée):

temp <- temp[with(temp, order(outcol)), ] 

one row returned

Qu'est-ce que je fais mal?

Répondre

0

Essayons

df <- data.frame(col1 =c(3896,3900,3899,3903), mortality.rate= c(15.7,12.9,15.7,16.0)) 
df 
df[with(df,order(mortality.rate)),] 
outcol <- "mortality.rate" 
df[order(df[outcol]),] 

Hope this helps!

+0

Oui, merci beaucoup! – kev716

+0

Vous êtes les bienvenus. S'il vous plaît ne pas oublier de l'accepter comme une réponse si elle a résolu votre problème :) Il va certainement aider les autres au cas où ils seront confrontés à un problème similaire à l'avenir. – Prem

+0

J'ai essayé de mais le site a répondu que j'ai besoin de 15 points de réputation d'abord, – kev716