J'ai un dataframe comme celui ci-dessous, que je présente une seule ligne de celui-ci:« Running » Centile pour chaque rangée dans une trame de données
HSI.Close.org HSI.Close HSI.Close.1 HSI.Close.2 HSI.Close.3
1987-03-17 2629.3 2669.6 2721.2 2750.1 2760.9
HSI.Close.4 HSI.Close.5 HSI.Close.6 HSI.Close.7 HSI.Close.8
1987-03-17 2731.1 2820.4 2798.6 2798.4 2890.9
HSI.Close.9 HSI.Close.10 HSI.Close.11 HSI.Close.12
1987-03-17 2939.1 2894.3 2877.9 2843.6
HSI.Close.13 HSI.Close.14 HSI.Close.15 HSI.Close.16
1987-03-17 2873.6 2848.2 2879 2827.4
HSI.Close.17 HSI.Close.18 HSI.Close.19 HSI.Close.20
1987-03-17 2775.8 2801.5 2792.1 2766.1
HSI.Close.21 HSI.Close.22 HSI.Close.23 HSI.Close.24
1987-03-17 2740.5 2754.7 2739.5 2694.9
HSI.Close.25 HSI.Close.26 HSI.Close.27 HSI.Close.28
1987-03-17 2713.7 2673.6 2672.4 2636.6
HSI.Close.29 HSI.Close.30 HSI.Close.31 HSI.Close.32
1987-03-17 2606.4 2585.2 2553.3 2524
HSI.Close.33 HSI.Close.34 HSI.Close.35 HSI.Close.36
1987-03-17 2484.4 2499.4 2536.9 2533.9
HSI.Close.37 HSI.Close.38 HSI.Close.39 HSI.Close.40
1987-03-17 2449.9 2460.5 2542.6 2559.1
HSI.Close.41 HSI.Close.42 HSI.Close.43 HSI.Close.44
1987-03-17 2578.2 2590.8 2614.9 2561.7
HSI.Close.45 HSI.Close.46 HSI.Close.47 HSI.Close.48
1987-03-17 2603.3 2607.1 2583.9 2552.4
HSI.Close.49 HSI.Close.50 hi52 lo52
1987-03-17 2540.1 2568.3 2939.1 2449.9
Chaque ligne contient 52 points de données, à savoir HSI.Close.org
, HSI.Close
et HSI.Close.1
à HSI.Close.50
.
Je veux savoir quel percentile HSI.Close.org
présente parmi les 52 points de données dans cette ligne particulière. Je pense à utiliser ddply
à as.numeric
le point de données 52, puis utilisez la commande quantile
pour vérifier le centile 1-100, et pour trouver le percentile par méthode d'essai-erreur. Mais je pense que c'est un peu lent, une méthode plus rapide est-elle possible?
Merci!
Très bien. Remarque: pour une colonne, remplacez «1» par «2». Vous pouvez également généraliser facilement l'idée avec, par exemple, '' pct <- function (x, p) correspond (x [p], sort (x))/longueur (x) '' et '' applique (df, 2, pct, 1) '', où le second argument de '' pct (x, p) '' est passé après '' pct'' dans '' apply''. – PatrickT