Related
I have a vector with 100 elements.
vec <- c(58.12, 51.97, 61.83, 53.46, 30.67, 38.8, 48.79, 56.82, 20.19,
53.1, 54.95, 46.45, 41.09, 51.76, 52.56, 44.63, 52.95, 30, 50.7,
56.33, 64.72, 39.99, 39.37, 33.82, 47.62, 51.28, 37.38, 50.55,
68.39, 53.88, 33.37, 29.69, 30.74, 47.51, 72.64, 47.88, 42.28,
62.71, 47.47, 71.45, 55.94, 39.5, 32.97, 28.81, 56.59, 49.79,
43.49, 41.97, 43.61, 30.09, 50.18, 63.88, 57.77, 41.57, 27.52,
38.47, 46.13, 41.85, 39.14, 46.38, 47.73, 61.51, 66.73, 56.28,
59.89, 47.38, 27.27, 17.41, 36.8, 27.21, 43.13, 43.68, 29.33,
53.76, 74.69, 29.56, 63.41, 31.61, 56.32, 49.68, 48.65, 46.81,
51.23, 65.23, 54.79, 84.64, 63.55, 32.4, 47.93, 68.13, 33.05,
30.21, 40.62, 48.28, 38.69, 31.72, 52.01, 64.17, 53.12, 35.03)
I want to scale this vector vec so that all the numbers between 0 to 50 are scaled from -1 to 0 and all number between 50 to 100 are scaled from 0 to 1.
I have written the following code to do this -
newvec = ifelse(vec < 50, -(vec/min(vec, na.rm = T)), vec/max(vec, na.rm = T))
plot(vec, newvec)
The output looks like (see the black circles) -
For the numbers above 50, scaling is fine, however, for the numbers below 50, the scaling is working in reverse order and is incorrect (as showing in the graph).
I have drawn a red line in this graph showing the correct scaling.
Can someone show, what I am doing wrong?
Thanks.
looks like a perfect linear equation!
m <- lm( y~x, data=data.frame( x=c(0,50,100), y=c(-1,0,1) ) )
coef(m)
gives:
(Intercept) x
-1.00 0.02
So multiply by 0.02 and subtract 1
You could do it by first rescaling it to 0-1 to then multiply it by two and subtracting one:
vec <- c(58.12, 51.97, 61.83, 53.46, 30.67, 38.8, 48.79, 56.82, 20.19,
53.1, 54.95, 46.45, 41.09, 51.76, 52.56, 44.63, 52.95, 30, 50.7,
56.33, 64.72, 39.99, 39.37, 33.82, 47.62, 51.28, 37.38, 50.55,
68.39, 53.88, 33.37, 29.69, 30.74, 47.51, 72.64, 47.88, 42.28,
62.71, 47.47, 71.45, 55.94, 39.5, 32.97, 28.81, 56.59, 49.79,
43.49, 41.97, 43.61, 30.09, 50.18, 63.88, 57.77, 41.57, 27.52,
38.47, 46.13, 41.85, 39.14, 46.38, 47.73, 61.51, 66.73, 56.28,
59.89, 47.38, 27.27, 17.41, 36.8, 27.21, 43.13, 43.68, 29.33,
53.76, 74.69, 29.56, 63.41, 31.61, 56.32, 49.68, 48.65, 46.81,
51.23, 65.23, 54.79, 84.64, 63.55, 32.4, 47.93, 68.13, 33.05,
30.21, 40.62, 48.28, 38.69, 31.72, 52.01, 64.17, 53.12, 35.03)
rescale_minMax <- function(x){
1 - (x - max(x)) / (min(x) - max(x))
}
newvec = rescale_minMax(vec) * 2 - 1
plot(vec, newvec)
Created on 2021-03-12 by the reprex package (v0.3.0)
doing this in R,
I have a set of 361 observations, "Dataset", 2 columns: Date and some numeric. All the dates present are between 2015-01-01 and 2015-12-31. Obviously there are 4 days that don't exist in this set, I would like to know which ones.
I tried to do:
MA <- rep(NA, 365)
for(i in 2:365){
MA[1] <- as.Date("2015-01-01")
MA[i] <- MA[i-1] + days(1)
}
MA[!(%in% Dataset$Date)]
But doesn't work... The vector MA consists of 365 times the number 16436
Anything solution for that?
EDIT:
This is set I called Dataset above:
dput(AW1)
structure(list(Date = structure(c(1420070400, 1420243200, 1420329600,
1420416000, 1420502400, 1420588800, 1420675200, 1420761600, 1420848000,
1420934400, 1421020800, 1421107200, 1421193600, 1421280000, 1421366400,
1421452800, 1421539200, 1421625600, 1421712000, 1421798400, 1421884800,
1421971200, 1422057600, 1422144000, 1422230400, 1422316800, 1422403200,
1422489600, 1422576000, 1422662400, 1422748800, 1422835200, 1422921600,
1423008000, 1423094400, 1423180800, 1423267200, 1423353600, 1423440000,
1423526400, 1423612800, 1423699200, 1423785600, 1423872000, 1423958400,
1424044800, 1424131200, 1424217600, 1424304000, 1424390400, 1424476800,
1424563200, 1424649600, 1424736000, 1424822400, 1424908800, 1424995200,
1425081600, 1425168000, 1425254400, 1425340800, 1425427200, 1425513600,
1425600000, 1425686400, 1425772800, 1425859200, 1425945600, 1426032000,
1426118400, 1426204800, 1426291200, 1426377600, 1426464000, 1426550400,
1426636800, 1426723200, 1426809600, 1426896000, 1426982400, 1427068800,
1427155200, 1427241600, 1427328000, 1427414400, 1427500800, 1427587200,
1427673600, 1427760000, 1427846400, 1427932800, 1428019200, 1428105600,
1428192000, 1428278400, 1428364800, 1428451200, 1428537600, 1428624000,
1428710400, 1428796800, 1428883200, 1428969600, 1429056000, 1429142400,
1429228800, 1429315200, 1429401600, 1429488000, 1429574400, 1429660800,
1429747200, 1429833600, 1429920000, 1430006400, 1430092800, 1430179200,
1430265600, 1430352000, 1430438400, 1430524800, 1430611200, 1430697600,
1430784000, 1430870400, 1430956800, 1431043200, 1431129600, 1431216000,
1431302400, 1431388800, 1431475200, 1431561600, 1431734400, 1431820800,
1431907200, 1431993600, 1432080000, 1432166400, 1432252800, 1432339200,
1432425600, 1432512000, 1432598400, 1432684800, 1432771200, 1432857600,
1432944000, 1433030400, 1433116800, 1433203200, 1433289600, 1433376000,
1433462400, 1433548800, 1433635200, 1433721600, 1433808000, 1433894400,
1433980800, 1434067200, 1434153600, 1434240000, 1434326400, 1434412800,
1434499200, 1434585600, 1434672000, 1434758400, 1434844800, 1434931200,
1435017600, 1435104000, 1435190400, 1435276800, 1435363200, 1435449600,
1435536000, 1435622400, 1435708800, 1435795200, 1435881600, 1435968000,
1436054400, 1436140800, 1436227200, 1436313600, 1436400000, 1436486400,
1436572800, 1436659200, 1436745600, 1436832000, 1436918400, 1437004800,
1437091200, 1437177600, 1437264000, 1437350400, 1437436800, 1437523200,
1437609600, 1437696000, 1437782400, 1437868800, 1437955200, 1438041600,
1438128000, 1438214400, 1438300800, 1438387200, 1438473600, 1438560000,
1438646400, 1438732800, 1438819200, 1438905600, 1438992000, 1439078400,
1439164800, 1439251200, 1439337600, 1439424000, 1439510400, 1439596800,
1439683200, 1439769600, 1439856000, 1439942400, 1440028800, 1440115200,
1440201600, 1440288000, 1440374400, 1440460800, 1440547200, 1440633600,
1440720000, 1440806400, 1440892800, 1440979200, 1441065600, 1441152000,
1441238400, 1441324800, 1441411200, 1441497600, 1441584000, 1441670400,
1441756800, 1441843200, 1441929600, 1442016000, 1442102400, 1442188800,
1442275200, 1442361600, 1442448000, 1442534400, 1442620800, 1442707200,
1442793600, 1442880000, 1442966400, 1443052800, 1443139200, 1443225600,
1443312000, 1443398400, 1443484800, 1443571200, 1443657600, 1443744000,
1443830400, 1443916800, 1444003200, 1444089600, 1444176000, 1444262400,
1444348800, 1444435200, 1444521600, 1444608000, 1444694400, 1444780800,
1444867200, 1444953600, 1445040000, 1445126400, 1445212800, 1445299200,
1445385600, 1445472000, 1445558400, 1445644800, 1445731200, 1445817600,
1445904000, 1445990400, 1446076800, 1446163200, 1446249600, 1446336000,
1446422400, 1446508800, 1446595200, 1446681600, 1446768000, 1446854400,
1446940800, 1447027200, 1447113600, 1447200000, 1447286400, 1447372800,
1447459200, 1447545600, 1447632000, 1447718400, 1447804800, 1447891200,
1447977600, 1448064000, 1448150400, 1448236800, 1448323200, 1448409600,
1448496000, 1448582400, 1448668800, 1448755200, 1448841600, 1448928000,
1449014400, 1449100800, 1449187200, 1449273600, 1449360000, 1449446400,
1449532800, 1449619200, 1449705600, 1449792000, 1449878400, 1449964800,
1450051200, 1450137600, 1450224000, 1450310400, 1450396800, 1450483200,
1450569600, 1450656000, 1450742400, 1450828800, 1450915200, 1451001600,
1451174400, 1451260800, 1451347200, 1451433600), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), Volume = c(2224.5, 44.3, 1835.4, 22205.2,
1100.9, 1409.7, 4233.9, 1857.5, 0.5, 1378.6, 1917.7, 4438.1,
73314, 1929.7, 666.9, 26.4, 1331.7, 7182.9, 2902.4, 22501.5,
2632.9, 1301.7, 102, 3673.7, 3446.7, 24917.2, 3867.7, 3977.5,
1780.7, 13.2, 2762.6, 5084.2, 3071.9, 4674, 4061.2, 2567.3, 216.5,
3323.7, 16072.4, 2108.4, 2786.2, 2883.9, 1848, 50.2, 2884.5,
9099.1, 4772.4, 2814.2, 2507.8, 1532.9, 2, 2932.5, 5734.1, 3077.1,
4960.5, 4289.3, 39098.7, 42.7, 1688.5, 3714.8, 6161.5, 4288.6,
25189, 2376.3, 18.4, 2530.1, 28803.4, 4369.3, 7202.6, 3500.1,
1880.4, 1705.5, 1541.4, 10804.1, 3712.7, 3182.5, 3527.6, 2266.8,
123.5, 2721.4, 5698, 8242.8, 4526.2, 13216.9, 1666.8, 61.8, 1596.4,
3999, 2026.6, 8054.1, 7198.6, 1754.9, 9.7, 44.4, 2837.6, 3479.5,
5583.3, 2247.9, 11005.5, 112, 614.1, 3668.8, 2464.6, 2156.6,
2086, 854.2, 90.1, 673.2, 18881.6, 2561.1, 11970.8, 2405.9, 1322.4,
226.2, 900.7, 1119.4, 3307.2, 10196, 2721.7, 27680.5, 7.4, 1130.1,
5506.6, 4332.5, 4490, 3839.1, 3902.9, 160.1, 1335.7, 13019.7,
1928.8, 2770.7, 58916.9, 200.6, 1759.9, 5744.1, 4217.8, 1734.2,
2385.6, 2810.8, 2409.8, 616.3, 2927.8, 1196.8, 4121.3, 18369.2,
2028, 3970, 1653.5, 8414.8, 3273.6, 2806.7, 3887.8, 1921, 3088.3,
1969.7, 1570.6, 3932.8, 16083.7, 4239.9, 2512.2, 2256.3, 618.8,
2312.8, 3129.2, 2973.7, 3311, 1889.8, 4972.5, 1871.8, 1480.9,
3875.4, 2899.1, 3199.6, 1227.6, 22825.8, 1704.6, 2799.4, 2039.6,
1579.7, 4847.7, 1284.8, 68.7, 1506.6, 18901.3, 13065.2, 30693.9,
4664.7, 4345, 11.6, 519.9, 2128.6, 4278.8, 2287.6, 2350.6, 577.7,
5.5, 987.8, 11598.7, 3479.5, 195.2, 5739.5, 2712.7, 45.6, 209.2,
5504.3, 2638.1, 1502.4, 2591.6, 983.5, 47.2, 556.9, 6807.1, 3577.6,
1790.5, 3795.6, 2223.6, 37.7, 599.7, 3029.7, 3722.8, 3904.5,
3650.1, 1190.3, 100.6, 605.9, 2981.2, 2090.1, 1876.7, 2296.2,
1013.7, 49.8, 421.3, 3973.4, 3028.6, 2808.4, 3595.6, 1450, 43.4,
914.4, 4933.7, 3790.2, 1735.5, 2675.1, 1211.9, 48, 1134.9, 3888.2,
5568.9, 3657.6, 7268.8, 2565.8, 44.1, 509.6, 56995.8, 2383.3,
1789.9, 4338.9, 2458.1, 63.4, 1073.7, 4398.2, 3822.8, 879, 2079,
2036.6, 216.6, 633.8, 9265.2, 1682.8, 1500.9, 3907.3, 2813.5,
17, 4582.7, 9989.6, 3588.3, 5064.6, 97352.7, 1892.3, 54, 1141.1,
10532.7, 9683, 19452.3, 4151.3, 2243, 33.7, 2208.9, 6159.6, 5811.6,
54718, 4610.5, 3598.8, 167.3, 8045.6, 6464.1, 3895.1, 3857.8,
4043.6, 2080.8, 350.4, 16011.2, 7012.4, 4329.9, 4554.6, 7454.4,
4379, 49.9, 2446.7, 32326.9, 28430.4, 11898.1, 11953.9, 3514.7,
74.3, 7928.2, 2188.7, 1895.9, 2113.7, 4400.2, 2367, 10, 2460,
2607.7, 14809.5, 2594.6, 2670.7, 3387.4, 26.2, 2321.6, 2555.1,
2302, 17930.3, 5320.1, 1865.2, 69, 3560.6, 1396.6, 3248, 2639.1,
4639.1, 327.2, 177.8, 3518.4, 3120.7, 4778.8, 4848.4, 2806.6,
3855.5, 1.7, 4524.5, 2473.7, 4024.4, 2574.3, 1350.6, 2.9, 703.1,
940.7, 9048.1, 164.2)), .Names = c("Date", "Volume"), row.names = c(NA,
-361L), class = "data.frame")
I've been struggling for a few days with this problem, so help would be much appreciated. I have a line in a function that goes like this:
sig <- which(!ma.sig[1,]==0)&which(!pricebreak[1,]==0) ## Retrieves signals
sig <- which(sig)
for (i in 1:length(sig))
cursig[i] <- cur[i]
}
Basically what I'm doing is calculating signals, and if these signals are 0 or 1 I want R to save the corresponding variables. So for example, here's what the signal table might look like:
>ma.sig(MergedData)
Eur JPY GBP CHF AUD CAD NZD SEK NOK
1 0 1 0 1 1 0 0 0
>price.break(MergedData)
Eur JPY GBP CHF AUD CAD NZD SEK NOK
1 0 1 0 1 1 0 1 1
And so on for 29 variables. And here's the original currency, cur, vector:
> cur
[1] "EUR" "JPY" "GBP" "CHF" "AUD" "CAD" "NZD" "SEK" "NOK" "CZK" "HUF" "ILS" "PLN" "RUB" "TRY"
[16] "ZAR" "BRL" "CLP" "COP" "MXN" "PEN" "CNY" "IDR" "INR" "KRW" "MYR" "SGD" "PHP" "THB"
So basically I want to save a variable cursig such that it displays only the currencies with a signal of 1. So I'll have something like this:
cursig
[1] "GBP" " AUD" "CAD"....
And so on for whichever currency displays 1 for both signal functions. My problem is that
cursig[i] <- cur[i]
Returns the very last currency for which the signals are true. I know this is probably a very rookie mistake, but a nudge in the right direction would be much appreciated.
EDIT:
Here's the full function:
new.trend <- function(MergedData)
{
ret <- as.list(rep(NA, length(MergedData)))
ma.sig <- ma.crossover(MergedData)
pricebreak <- price.channel(MergedData)
sig <- which(!ma.sig[1,]==0)&which(!pricebreak[1,]==0) ## Retrieves signals
sig <- which(sig)
cursig <- character() #Preparing to save currency variables
for (i in 1:length(sig)) { #Calculates output variables based on active signals
x <- MergedData[[i]]
x <- xts(x[,-1], order.by=x[,1])
dev20 <- (x[,5]-SMA(x[,5], n=20))/x[,5]*100
dev50 <- (x[,5]-SMA(x[,5], n=50))/x[,5]*100
RSI <- RSI(x[,5], n=14)
cursig <- c(cursig, cur[1])
ret[[i]] <- na.omit(merge(tail(dev20, n=1L), tail(dev50, n=1L), tail(RSI, n=1L)))
}
na.omit(do.call(merge,ret))
}
print(new.trend(MergedData))
The reason I'm using a for() loop is because MergedData consits of 29 dataframes such that MergedData[[1] returns something like:
Date EUR.OPEN EUR.HIGH EUR.LOW EUR.CLOSE EUR.LAST
1 2016-08-30 1.1153 1.1192 1.1153 1.1161 1.1161
2 2016-08-29 1.1158 1.1208 1.1158 1.1189 1.1189
3 2016-08-28 1.1181 1.1341 1.1181 1.1198 1.1198
4 2016-08-27 1.1181 1.1341 1.1181 1.1198 1.1198
5 2016-08-26 1.1181 1.1341 1.1181 1.1198 1.1198
And so on for 29 currencies listed in cur.
Sample dput is here:
tzone = "", class = c("POSIXct",
"POSIXt")), PHP.OPEN = c(46.385, 46.283, 46.283, 46.283,
46.283, 46.33, 46.45, 46.45, 46.5, 46.29, 46.29, 46.29, 46.235,
46.28, 46.225, 46.445, 46.455, 46.455, 46.455, 46.365, 46.73,
46.85, 46.423, 46.05, 46.05, 46.05, 46.975, 46.03, 46.035,
46.915, 47.017, 47.017, 47.017, 47.05, 46.825, 47.105, 47.12,
47, 47, 47, 47.055, 46.015, 46.725, 46.675, 46.671, 46.671,
46.671, 47.019, 47, 47.055, 47.033, 47, 47, 47, 46.85, 46.765,
46.765, 46.753, 46.465, 46.465, 46.465, 46.035, 46.49, 45.93,
46.955, 46.51, 46.51, 46.51, 46.475, 46.365, 46.31, 46.3,
44.623, 44.623, 44.623, 46.285, 46.31, 46.073, 46.07, 46.06,
46.06, 46.06, 45.859, 46, 45.728, 46.2, 46.452, 46.452, 46.452,
46.53, 46.64, 46.653, 46.69, 46.614, 46.614, 46.614, 46.429,
46.63, 46.788, 46.69, 46.714, 46.714, 46.714, 46.705, 46.465,
46.325, 46.055, 46.55, 46.55, 46.55, 46.458, 46.53, 46.753,
47.085, 47.085, 47.085, 47.085, 47.118, 46.595, 46.845, 46.225,
46.66, 46.66, 46.66, 46.722, 46.64, 46.728, 46.683, 46.285,
46.285, 46.285, 46.224, 46.04, 46.055, 46.06, 46.049, 46.049,
46.049, 46.154, 45.903, 46.017, 46, 46.12, 46.12, 46.12,
46.07, 46.165, 46.153, 45, 45.95, 45.95, 45.95, 45.91, 46.02,
46.235, 46.325, 46.227, 46.227, 46.227, 46.227, 46.227, 46.16,
46, 46.168, 46.168, 46.168, 46.357, 46.475, 46.61, 46.439,
46.595, 46.595, 46.595, 46.653, 46.835, 46.285, 46.772, 46.861,
46.861, 46.861, 47.02, 47.225, 47.3, 47.525, 47.076, 47.076,
47.076, 47.62, 47.613, 47.575, 47.585, 47.552, 47.552, 47.552,
47.51, 47.45, 47.403, 47.435, 47.45, 47.45, 47.45, 47.375,
47.445, 47, 47.665, 47.665, 47.665, 47.665, 47.719, 47.825,
47.67, 47.623, 47.615, 47.615, 47.615, 47.717, 47.809, 47.869,
47.72, 47.8, 47.8, 47.8, 47.695, 47.67, 47.586, 47.635, 47.63,
47.63, 47.63, 47.55, 47.335, 47.2, 47.233, 46.92, 46.92,
46.92, 46.98, 46.82, 46.875, 47, 47.17, 47.17, 47.17), PHP.HIGH = c(46.535,
46.438, 46.438, 46.438, 46.438, 46.583, 46.645, 46.59, 46.702,
46.488, 46.488, 46.488, 46.41, 46.88, 46.88, 46.77, 46.865,
46.865, 46.865, 46.8, 46.865, 46.975, 47.02, 47.04, 47.04,
47.04, 47.075, 47.358, 47.487, 47.03, 47.135, 47.135, 47.135,
47.18, 47.228, 47.24, 47.228, 47.155, 47.155, 47.155, 47.23,
47.158, 46.96, 46.89, 47.055, 47.055, 47.055, 47.22, 47.435,
47.49, 47.32, 47.585, 47.585, 47.585, 47.112, 47.345, 47.345,
46.895, 47.065, 47.065, 47.065, 47.935, 47.98, 47.95, 47.183,
46.975, 46.975, 46.975, 46.587, 46.64, 46.388, 46.445, 46.475,
46.475, 46.475, 46.455, 46.479, 47.065, 46.222, 46.155, 46.155,
46.155, 46.388, 46.12, 46.265, 46.45, 46.982, 46.982, 46.982,
46.615, 46.79, 47.065, 46.825, 46.71, 46.71, 46.71, 46.788,
46.889, 46.925, 46.86, 46.86, 46.86, 46.86, 46.947, 46.705,
46.457, 46.655, 46.8, 46.8, 46.8, 46.715, 46.75, 47.205,
47.385, 47.385, 47.385, 47.385, 47.245, 47.132, 47.75, 47.041,
46.964, 46.964, 46.964, 46.878, 46.842, 46.94, 46.874, 46.68,
46.68, 46.68, 46.46, 46.225, 46.16, 46.2, 46.25, 46.25, 46.25,
46.306, 46.487, 46.14, 46.18, 46.266, 46.266, 46.266, 46.17,
46.338, 46.295, 46.105, 47.02, 47.02, 47.02, 46.085, 46.262,
46.439, 46.537, 46.463, 46.463, 46.463, 46.463, 46.463, 46.39,
46.577, 46.379, 46.379, 46.379, 46.58, 46.925, 46.83, 46.607,
46.795, 46.795, 46.795, 46.855, 47.025, 47.035, 46.925, 47.125,
47.125, 47.125, 47.252, 47.307, 47.5, 47.605, 47.603, 47.603,
47.603, 47.62, 47.717, 47.66, 47.705, 47.905, 47.905, 47.905,
47.595, 47.695, 47.59, 47.555, 47.74, 47.74, 47.74, 47.488,
47.632, 47.795, 47.757, 47.757, 47.757, 47.757, 47.8, 47.925,
47.79, 47.74, 47.775, 47.775, 47.775, 47.945, 47.995, 48.005,
47.9, 47.911, 47.911, 47.911, 47.958, 47.895, 47.755, 47.885,
47.78, 47.78, 47.78, 47.748, 47.55, 47.46, 47.335, 47.173,
47.173, 47.173, 47.14, 47.062, 47.188, 47.158, 47.17, 47.17,
47.17), PHP.LOW = c(46.385, 46.283, 46.283, 46.283, 46.283,
46.33, 46.45, 46.45, 46.5, 46.29, 46.29, 46.29, 46.235, 46.28,
46.225, 46.445, 46.455, 46.455, 46.455, 46.365, 46.73, 46.85,
46.423, 46.05, 46.05, 46.05, 46.975, 46.03, 46.035, 46.915,
47.017, 47.017, 47.017, 47.05, 46.825, 47.105, 47.12, 47,
47, 47, 47.055, 46.015, 46.725, 46.675, 46.671, 46.671, 46.671,
47.019, 47, 47.055, 47.033, 47, 47, 47, 46.85, 46.765, 46.765,
46.753, 46.465, 46.465, 46.465, 46.035, 46.49, 45.93, 46.955,
46.51, 46.51, 46.51, 46.475, 46.365, 46.31, 46.3, 44.623,
44.623, 44.623, 46.285, 46.31, 46.073, 46.07, 46.06, 46.06,
46.06, 45.859, 46, 45.728, 46.2, 46.452, 46.452, 46.452,
46.53, 46.64, 46.653, 46.69, 46.614, 46.614, 46.614, 46.429,
46.63, 46.788, 46.69, 46.714, 46.714, 46.714, 46.705, 46.465,
46.325, 46.055, 46.55, 46.55, 46.55, 46.458, 46.53, 46.753,
47.085, 47.085, 47.085, 47.085, 47.118, 46.595, 46.845, 46.225,
46.66, 46.66, 46.66, 46.722, 46.64, 46.728, 46.683, 46.285,
46.285, 46.285, 46.224, 46.04, 46.055, 46.06, 46.049, 46.049,
46.049, 46.154, 45.903, 46.017, 46, 46.12, 46.12, 46.12,
46.07, 46.165, 46.153, 45, 45.95, 45.95, 45.95, 45.91, 46.02,
46.235, 46.325, 46.227, 46.227, 46.227, 46.227, 46.227, 46.16,
46, 46.168, 46.168, 46.168, 46.357, 46.475, 46.61, 46.439,
46.595, 46.595, 46.595, 46.653, 46.835, 46.285, 46.772, 46.861,
46.861, 46.861, 47.02, 47.225, 47.3, 47.525, 47.076, 47.076,
47.076, 47.62, 47.613, 47.575, 47.585, 47.552, 47.552, 47.552,
47.51, 47.45, 47.403, 47.435, 47.45, 47.45, 47.45, 47.375,
47.445, 47, 47.665, 47.665, 47.665, 47.665, 47.719, 47.825,
47.67, 47.623, 47.615, 47.615, 47.615, 47.717, 47.809, 47.869,
47.72, 47.8, 47.8, 47.8, 47.695, 47.67, 47.586, 47.635, 47.63,
47.63, 47.63, 47.55, 47.335, 47.2, 47.233, 46.92, 46.92,
46.92, 46.98, 46.82, 46.875, 47, 47.17, 47.17, 47.17), PHP.CLOSE = c(46.46,
46.36, 46.36, 46.36, 46.36, 46.345, 46.535, 46.45, 46.58,
46.45, 46.45, 46.45, 46.28, 46.41, 46.88, 46.455, 46.6, 46.6,
46.6, 46.79, 46.75, 46.85, 46.835, 46.9, 46.9, 46.9, 47.02,
47.035, 46.961, 46.94, 47.11, 47.11, 47.11, 47.07, 47.18,
47.14, 47.15, 47.12, 47.12, 47.12, 47.077, 46.725, 46.94,
46.714, 46.85, 46.85, 46.85, 47.05, 47.21, 47.321, 47.31,
47.125, 47.125, 47.125, 47, 47.03, 47.03, 46.775, 46.915,
46.915, 46.915, 47.085, 46.965, 46.895, 47.03, 46.95, 46.95,
46.95, 46.51, 46.475, 46.38, 46.335, 46.425, 46.425, 46.425,
46.43, 46.43, 46.31, 46.08, 46.13, 46.13, 46.13, 46.055,
46.01, 46.11, 46.225, 46.465, 46.465, 46.465, 46.53, 46.64,
46.75, 46.75, 46.635, 46.635, 46.635, 46.69, 46.785, 46.92,
46.788, 46.75, 46.75, 46.75, 46.8, 46.66, 46.42, 46.46, 46.555,
46.555, 46.555, 46.647, 46.555, 46.757, 47.09, 47.09, 47.09,
47.09, 47.24, 47.08, 46.89, 46.965, 46.89, 46.89, 46.89,
46.77, 46.78, 46.76, 46.85, 46.645, 46.645, 46.645, 46.44,
46.225, 46.093, 46.185, 46.065, 46.065, 46.065, 46.25, 46.085,
46.018, 46.122, 46.135, 46.135, 46.135, 46.1, 46.2, 46.26,
46.08, 46.015, 46.015, 46.015, 46.07, 46.028, 46.35, 46.34,
46.395, 46.395, 46.395, 46.395, 46.395, 46.285, 46.33, 46.36,
46.36, 46.36, 46.38, 46.785, 46.83, 46.595, 46.62, 46.62,
46.62, 46.695, 46.855, 46.958, 46.92, 46.946, 46.946, 46.946,
47.125, 47.298, 47.35, 47.558, 47.515, 47.515, 47.515, 47.62,
47.625, 47.635, 47.619, 47.665, 47.665, 47.665, 47.55, 47.45,
47.573, 47.45, 47.74, 47.74, 47.74, 47.45, 47.47, 47.671,
47.665, 47.665, 47.665, 47.665, 47.775, 47.86, 47.685, 47.69,
47.65, 47.65, 47.65, 47.743, 47.815, 47.997, 47.89, 47.805,
47.805, 47.805, 47.935, 47.89, 47.67, 47.706, 47.745, 47.745,
47.745, 47.64, 47.542, 47.45, 47.269, 47.158, 47.158, 47.158,
47.01, 47.025, 46.89, 47.125, 47.17, 47.17, 47.17), PHP.LAST = c(46.46,
46.36, 46.36, 46.36, 46.36, 46.345, 46.535, 46.45, 46.58,
46.45, 46.45, 46.45, 46.28, 46.41, 46.88, 46.455, 46.6, 46.6,
46.6, 46.79, 46.75, 46.85, 46.835, 46.9, 46.9, 46.9, 47.02,
47.035, 46.961, 46.94, 47.11, 47.11, 47.11, 47.07, 47.18,
47.14, 47.15, 47.12, 47.12, 47.12, 47.077, 46.725, 46.94,
46.714, 46.85, 46.85, 46.85, 47.05, 47.21, 47.321, 47.31,
47.125, 47.125, 47.125, 47, 47.03, 47.03, 46.775, 46.915,
46.915, 46.915, 47.085, 46.965, 46.895, 47.03, 46.95, 46.95,
46.95, 46.51, 46.475, 46.38, 46.335, 46.425, 46.425, 46.425,
46.43, 46.43, 46.31, 46.08, 46.13, 46.13, 46.13, 46.055,
46.01, 46.11, 46.225, 46.465, 46.465, 46.465, 46.53, 46.64,
46.75, 46.75, 46.635, 46.635, 46.635, 46.69, 46.785, 46.92,
46.788, 46.75, 46.75, 46.75, 46.8, 46.66, 46.42, 46.46, 46.555,
46.555, 46.555, 46.647, 46.555, 46.757, 47.09, 47.09, 47.09,
47.09, 47.24, 47.08, 46.89, 46.965, 46.89, 46.89, 46.89,
46.77, 46.78, 46.76, 46.85, 46.645, 46.645, 46.645, 46.44,
46.225, 46.093, 46.185, 46.065, 46.065, 46.065, 46.25, 46.085,
46.018, 46.122, 46.135, 46.135, 46.135, 46.1, 46.2, 46.26,
46.08, 46.015, 46.015, 46.015, 46.07, 46.028, 46.35, 46.34,
46.395, 46.395, 46.395, 46.395, 46.395, 46.285, 46.33, 46.36,
46.36, 46.36, 46.38, 46.785, 46.83, 46.595, 46.62, 46.62,
46.62, 46.695, 46.855, 46.958, 46.92, 46.946, 46.946, 46.946,
47.125, 47.298, 47.35, 47.558, 47.515, 47.515, 47.515, 47.62,
47.625, 47.635, 47.619, 47.665, 47.665, 47.665, 47.55, 47.45,
47.573, 47.45, 47.74, 47.74, 47.74, 47.45, 47.47, 47.671,
47.665, 47.665, 47.665, 47.665, 47.775, 47.86, 47.685, 47.69,
47.65, 47.65, 47.65, 47.743, 47.815, 47.997, 47.89, 47.805,
47.805, 47.805, 47.935, 47.89, 47.67, 47.706, 47.745, 47.745,
47.745, 47.64, 47.542, 47.45, 47.269, 47.158, 47.158, 47.158,
47.01, 47.025, 46.89, 47.125, 47.17, 47.17, 47.17)), .Names = c("Date",
"PHP.OPEN", "PHP.HIGH", "PHP.LOW", "PHP.CLOSE", "PHP.LAST"
), row.names = c(NA, -243L), class = "data.frame"), structure(list(
Date = structure(c(1472533200, 1472446800, 1472360400,
1472274000, 1472187600, 1472101200, 1472014800, 1471928400,
1471842000, 1471755600, 1471669200, 1471582800, 1471496400,
1471410000, 1471323600, 1471237200, 1471150800, 1471064400,
1470978000, 1470891600, 1470805200, 1470718800, 1470632400,
1470546000, 1470459600, 1470373200, 1470286800, 1470200400,
1470114000, 1470027600, 1469941200, 1469854800, 1469768400,
1469682000, 1469595600, 1469509200, 1469422800, 1469336400,
1469250000, 1469163600, 1469077200, 1468990800, 1468904400,
1468818000, 1468731600, 1468645200, 1468558800, 1468472400,
1468386000, 1468299600, 1468213200, 1468126800, 1468040400,
1467954000, 1467867600, 1467781200, 1467694800, 1467608400,
1467522000, 1467435600, 1467349200, 1467262800, 1467176400,
1467090000, 1467003600, 1466917200, 1466830800, 1466744400,
1466658000, 1466571600, 1466485200, 1466398800, 1466312400,
1466226000, 1466139600, 1466053200, 1465966800, 1465880400,
1465794000, 1465707600, 1465621200, 1465534800, 1465448400,
1465362000, 1465275600, 1465189200, 1465102800, 1465016400,
1464930000, 1464843600, 1464757200, 1464670800, 1464584400,
1464498000, 1464411600, 1464325200, 1464238800, 1464152400,
1464066000, 1463979600, 1463893200, 1463806800, 1463720400,
1463634000, 1463547600, 1463461200, 1463374800, 1463288400,
1463202000, 1463115600, 1463029200, 1462942800, 1462856400,
1462770000, 1462683600, 1462597200, 1462510800, 1462424400,
1462338000, 1462251600, 1462165200, 1462078800, 1461992400,
1461906000, 1461819600, 1461733200, 1461646800, 1461560400,
1461474000, 1461387600, 1461301200, 1461214800, 1461128400,
1461042000, 1460955600, 1460869200, 1460782800, 1460696400,
1460610000, 1460523600, 1460437200, 1460350800, 1460264400,
1460178000, 1460091600, 1460005200, 1459918800, 1459832400,
1459746000, 1459659600, 1459573200, 1459486800, 1459400400,
1459314000, 1459227600, 1459141200, 1459054800, 1458968400,
1458882000, 1458795600, 1458709200, 1458622800, 1458536400,
1458450000, 1458363600, 1458277200, 1458190800, 1458104400,
1458018000, 1457931600, 1457848800, 1457762400, 1457676000,
1457589600, 1457503200, 1457416800, 1457330400, 1457244000,
1457157600, 1457071200, 1456984800, 1456898400, 1456812000,
1456725600, 1456639200, 1456552800, 1456466400, 1456380000,
1456293600, 1456207200, 1456120800, 1456034400, 1455948000,
1455861600, 1455775200, 1455688800, 1455602400, 1455516000,
1455429600, 1455343200, 1455256800, 1455170400, 1455084000,
1454997600, 1454911200, 1454824800, 1454738400, 1454652000,
1454565600, 1454479200, 1454392800, 1454306400, 1454220000,
1454133600, 1454047200, 1453960800, 1453874400, 1453788000,
1453701600, 1453615200, 1453528800, 1453442400, 1453356000,
1453269600, 1453183200, 1453096800, 1453010400, 1452924000,
1452837600, 1452751200, 1452664800, 1452578400, 1452492000,
1452405600, 1452319200, 1452232800, 1452146400, 1452060000,
1451973600, 1451887200, 1451800800, 1451714400, 1451628000
), tzone = "", class = c("POSIXct", "POSIXt")), THB.OPEN = c(34.53,
34.596, 34.506, 34.506, 34.506, 34.539, 34.573, 34.564,
34.607, 34.528, 34.528, 34.528, 34.531, 34.577, 34.52,
34.577, 34.696, 34.696, 34.696, 34.731, 34.738, 34.911,
34.901, 34.796, 34.796, 34.796, 34.886, 34.739, 34.74,
34.72, 34.8, 34.8, 34.8, 34.84, 34.951, 34.98, 34.905,
34.87, 34.87, 34.87, 34.95, 34.97, 34.931, 34.918, 34.907,
34.907, 34.907, 35.029, 35.13, 35.103, 35.049, 35.169,
35.169, 35.169, 35.145, 35.149, 35.012, 35.011, 35.06,
35.06, 35.06, 35.097, 35.175, 35.238, 35.257, 35.114,
35.114, 35.114, 35.146, 35.173, 35.15, 35.162, 35.225,
35.225, 35.225, 35.151, 35.24, 35.12, 35.16, 35.147,
35.147, 35.147, 35.085, 35.189, 35.217, 35.26, 35.545,
35.545, 35.545, 35.57, 35.64, 35.691, 35.69, 35.56, 35.56,
35.56, 35.571, 35.625, 35.664, 35.56, 35.622, 35.622,
35.622, 35.641, 35.486, 35.32, 35.341, 35.311, 35.311,
35.311, 35.217, 35.19, 35.193, 35.09, 35.126, 35.126,
35.126, 35.075, 34.99, 34.83, 34.83, 34.885, 34.885,
34.885, 35.007, 35.09, 35.08, 35.052, 35.02, 35.02, 35.02,
34.883, 34.825, 34.88, 35.01, 35.051, 35.051, 35.051,
35.024, 34.951, 35.005, 35.04, 35.09, 35.09, 35.09, 35.15,
35.214, 35.237, 35.12, 35.09, 35.09, 35.09, 35.159, 35.189,
35.323, 35.274, 35.265, 35.265, 35.265, 35.188, 34.917,
34.88, 34.85, 34.745, 34.745, 34.745, 34.77, 34.99, 35.07,
35.05, 35.064, 35.064, 35.064, 35.239, 35.287, 35.365,
35.349, 35.385, 35.385, 35.385, 35.476, 35.54, 35.588,
35.618, 35.63, 35.63, 35.63, 35.65, 35.69, 35.715, 35.717,
35.54, 35.54, 35.54, 35.537, 35.6, 35.59, 35.552, 35.228,
35.228, 35.228, 35.228, 35.3, 35.388, 35.495, 35.48,
35.48, 35.48, 35.55, 35.77, 35.579, 35.591, 35.684, 35.684,
35.684, 35.775, 35.77, 35.89, 35.925, 36.026, 36.026,
36.026, 36.235, 36.272, 36.26, 36.29, 36.28, 36.28, 36.28,
36.256, 36.237, 36.235, 36.25, 36.17, 36.17, 36.17, 36.226,
36.103, 36.08, 36.033, 36.02, 36.02, 36.02), THB.HIGH = c(34.655,
34.72, 34.601, 34.601, 34.601, 34.675, 34.69, 34.676,
34.764, 34.671, 34.671, 34.671, 34.69, 34.737, 34.65,
34.82, 34.86, 34.86, 34.86, 34.838, 34.967, 35.005, 35.065,
34.93, 34.93, 34.93, 35.039, 34.95, 34.84, 34.91, 34.92,
34.92, 34.92, 34.967, 35.074, 35.086, 35.08, 35, 35,
35, 35.088, 35.09, 35.04, 35.03, 35.085, 35.085, 35.085,
35.23, 35.257, 35.206, 35.225, 35.264, 35.264, 35.264,
35.239, 35.281, 35.198, 35.125, 35.16, 35.16, 35.16,
35.228, 35.295, 35.371, 35.435, 35.546, 35.546, 35.546,
35.244, 35.29, 35.24, 35.284, 35.356, 35.356, 35.356,
35.254, 35.39, 35.303, 35.295, 35.295, 35.295, 35.295,
35.24, 35.241, 35.327, 35.411, 35.64, 35.64, 35.64, 35.704,
35.77, 35.755, 35.8, 35.701, 35.701, 35.701, 35.68, 35.795,
35.787, 35.706, 35.736, 35.736, 35.736, 35.8, 35.625,
35.557, 35.461, 35.466, 35.466, 35.466, 35.34, 35.294,
35.267, 35.166, 35.193, 35.193, 35.193, 35.19, 35.184,
34.94, 34.934, 35.009, 35.009, 35.009, 35.16, 35.195,
35.222, 35.17, 35.095, 35.095, 35.095, 35.095, 34.949,
35.02, 35.11, 35.12, 35.12, 35.12, 35.211, 35.055, 35.07,
35.112, 35.234, 35.234, 35.234, 35.253, 35.31, 35.39,
35.29, 35.175, 35.175, 35.175, 35.262, 35.365, 35.44,
35.408, 35.365, 35.365, 35.365, 35.395, 35.13, 34.963,
34.952, 34.925, 34.925, 34.925, 34.975, 35.145, 35.15,
35.151, 35.26, 35.26, 35.26, 35.31, 35.393, 35.47, 35.495,
35.46, 35.46, 35.46, 35.559, 35.656, 35.655, 35.763,
35.707, 35.707, 35.707, 35.714, 35.759, 35.776, 35.781,
35.75, 35.75, 35.75, 35.63, 35.68, 35.671, 35.69, 35.64,
35.64, 35.64, 35.325, 35.428, 35.539, 35.612, 35.651,
35.651, 35.651, 35.755, 35.87, 35.771, 35.77, 35.861,
35.861, 35.861, 35.885, 35.874, 36.045, 36.055, 36.253,
36.253, 36.253, 36.29, 36.327, 36.325, 36.382, 36.374,
36.374, 36.374, 36.345, 36.338, 36.375, 36.345, 36.327,
36.327, 36.327, 36.35, 36.257, 36.177, 36.19, 36.033,
36.033, 36.033), THB.LOW = c(34.53, 34.596, 34.506, 34.506,
34.506, 34.539, 34.573, 34.564, 34.607, 34.528, 34.528,
34.528, 34.531, 34.577, 34.52, 34.577, 34.696, 34.696,
34.696, 34.731, 34.738, 34.911, 34.901, 34.796, 34.796,
34.796, 34.886, 34.739, 34.74, 34.72, 34.8, 34.8, 34.8,
34.84, 34.951, 34.98, 34.905, 34.87, 34.87, 34.87, 34.95,
34.97, 34.931, 34.918, 34.907, 34.907, 34.907, 35.029,
35.13, 35.103, 35.049, 35.169, 35.169, 35.169, 35.145,
35.149, 35.012, 35.011, 35.06, 35.06, 35.06, 35.097,
35.175, 35.238, 35.257, 35.114, 35.114, 35.114, 35.146,
35.173, 35.15, 35.162, 35.225, 35.225, 35.225, 35.151,
35.24, 35.12, 35.16, 35.147, 35.147, 35.147, 35.085,
35.189, 35.217, 35.26, 35.545, 35.545, 35.545, 35.57,
35.64, 35.691, 35.69, 35.56, 35.56, 35.56, 35.571, 35.625,
35.664, 35.56, 35.622, 35.622, 35.622, 35.641, 35.486,
35.32, 35.341, 35.311, 35.311, 35.311, 35.217, 35.19,
35.193, 35.09, 35.126, 35.126, 35.126, 35.075, 34.99,
34.83, 34.83, 34.885, 34.885, 34.885, 35.007, 35.09,
35.08, 35.052, 35.02, 35.02, 35.02, 34.883, 34.825, 34.88,
35.01, 35.051, 35.051, 35.051, 35.024, 34.951, 35.005,
35.04, 35.09, 35.09, 35.09, 35.15, 35.214, 35.237, 35.12,
35.09, 35.09, 35.09, 35.159, 35.189, 35.323, 35.274,
35.265, 35.265, 35.265, 35.188, 34.917, 34.88, 34.85,
34.745, 34.745, 34.745, 34.77, 34.99, 35.07, 35.05, 35.064,
35.064, 35.064, 35.239, 35.287, 35.365, 35.349, 35.385,
35.385, 35.385, 35.476, 35.54, 35.588, 35.618, 35.63,
35.63, 35.63, 35.65, 35.69, 35.715, 35.717, 35.54, 35.54,
35.54, 35.537, 35.6, 35.59, 35.552, 35.228, 35.228, 35.228,
35.228, 35.3, 35.388, 35.495, 35.48, 35.48, 35.48, 35.55,
35.77, 35.579, 35.591, 35.684, 35.684, 35.684, 35.775,
35.77, 35.89, 35.925, 36.026, 36.026, 36.026, 36.235,
36.272, 36.26, 36.29, 36.28, 36.28, 36.28, 36.256, 36.237,
36.235, 36.25, 36.17, 36.17, 36.17, 36.226, 36.103, 36.08,
36.033, 36.02, 36.02, 36.02), THB.CLOSE = c(34.558, 34.601,
34.565, 34.565, 34.565, 34.565, 34.618, 34.64, 34.67,
34.635, 34.635, 34.635, 34.605, 34.7, 34.575, 34.61,
34.81, 34.81, 34.81, 34.76, 34.751, 34.965, 34.974, 34.822,
34.822, 34.822, 34.927, 34.94, 34.75, 34.77, 34.83, 34.83,
34.83, 34.868, 34.97, 35.01, 35.05, 34.93, 34.93, 34.93,
34.995, 34.989, 35.01, 35.005, 34.94, 34.94, 34.94, 35.03,
35.16, 35.138, 35.11, 35.25, 35.25, 35.25, 35.173, 35.214,
35.134, 35.048, 35.086, 35.086, 35.086, 35.138, 35.23,
35.29, 35.35, 35.339, 35.339, 35.339, 35.173, 35.24,
35.173, 35.21, 35.235, 35.235, 35.235, 35.24, 35.25,
35.3, 35.18, 35.26, 35.26, 35.26, 35.21, 35.21, 35.23,
35.28, 35.629, 35.629, 35.629, 35.61, 35.67, 35.705,
35.75, 35.658, 35.658, 35.658, 35.6, 35.71, 35.73, 35.66,
35.679, 35.679, 35.679, 35.71, 35.6, 35.49, 35.37, 35.43,
35.43, 35.43, 35.32, 35.27, 35.236, 35.13, 35.149, 35.149,
35.149, 35.179, 35.184, 34.92, 34.841, 34.92, 34.92,
34.92, 35.02, 35.15, 35.16, 35.11, 35.04, 35.04, 35.04,
35.01, 34.86, 34.91, 35.03, 35.065, 35.065, 35.065, 35.12,
35.036, 35.02, 35.07, 35.12, 35.12, 35.12, 35.205, 35.256,
35.32, 35.263, 35.105, 35.105, 35.105, 35.185, 35.235,
35.426, 35.36, 35.27, 35.27, 35.27, 35.35, 35.118, 34.91,
34.89, 34.85, 34.85, 34.85, 34.78, 35.02, 35.132, 35.08,
35.16, 35.16, 35.16, 35.25, 35.32, 35.425, 35.42, 35.403,
35.403, 35.403, 35.51, 35.57, 35.625, 35.64, 35.64, 35.64,
35.64, 35.68, 35.7, 35.74, 35.755, 35.745, 35.745, 35.745,
35.548, 35.61, 35.61, 35.65, 35.58, 35.58, 35.58, 35.245,
35.36, 35.489, 35.51, 35.497, 35.497, 35.497, 35.56,
35.841, 35.76, 35.605, 35.73, 35.73, 35.73, 35.825, 35.79,
35.908, 36.021, 36.037, 36.037, 36.037, 36.263, 36.3,
36.27, 36.32, 36.366, 36.366, 36.366, 36.313, 36.25,
36.33, 36.28, 36.307, 36.307, 36.307, 36.285, 36.22,
36.15, 36.14, 36.02, 36.02, 36.02), THB.LAST = c(34.558,
34.601, 34.565, 34.565, 34.565, 34.565, 34.618, 34.64,
34.67, 34.635, 34.635, 34.635, 34.605, 34.7, 34.575,
34.61, 34.81, 34.81, 34.81, 34.76, 34.751, 34.965, 34.974,
34.822, 34.822, 34.822, 34.927, 34.94, 34.75, 34.77,
34.83, 34.83, 34.83, 34.868, 34.97, 35.01, 35.05, 34.93,
34.93, 34.93, 34.995, 34.989, 35.01, 35.005, 34.94, 34.94,
34.94, 35.03, 35.16, 35.138, 35.11, 35.25, 35.25, 35.25,
35.173, 35.214, 35.134, 35.048, 35.086, 35.086, 35.086,
35.138, 35.23, 35.29, 35.35, 35.339, 35.339, 35.339,
35.173, 35.24, 35.173, 35.21, 35.235, 35.235, 35.235,
35.24, 35.25, 35.3, 35.18, 35.26, 35.26, 35.26, 35.21,
35.21, 35.23, 35.28, 35.629, 35.629, 35.629, 35.61, 35.67,
35.705, 35.75, 35.658, 35.658, 35.658, 35.6, 35.71, 35.73,
35.66, 35.679, 35.679, 35.679, 35.71, 35.6, 35.49, 35.37,
35.43, 35.43, 35.43, 35.32, 35.27, 35.236, 35.13, 35.149,
35.149, 35.149, 35.179, 35.184, 34.92, 34.841, 34.92,
34.92, 34.92, 35.02, 35.15, 35.16, 35.11, 35.04, 35.04,
35.04, 35.01, 34.86, 34.91, 35.03, 35.065, 35.065, 35.065,
35.12, 35.036, 35.02, 35.07, 35.12, 35.12, 35.12, 35.205,
35.256, 35.32, 35.263, 35.105, 35.105, 35.105, 35.185,
35.235, 35.426, 35.36, 35.27, 35.27, 35.27, 35.35, 35.118,
34.91, 34.89, 34.85, 34.85, 34.85, 34.78, 35.02, 35.132,
35.08, 35.16, 35.16, 35.16, 35.25, 35.32, 35.425, 35.42,
35.403, 35.403, 35.403, 35.51, 35.57, 35.625, 35.64,
35.64, 35.64, 35.64, 35.68, 35.7, 35.74, 35.755, 35.745,
35.745, 35.745, 35.548, 35.61, 35.61, 35.65, 35.58, 35.58,
35.58, 35.245, 35.36, 35.489, 35.51, 35.497, 35.497,
35.497, 35.56, 35.841, 35.76, 35.605, 35.73, 35.73, 35.73,
35.825, 35.79, 35.908, 36.021, 36.037, 36.037, 36.037,
36.263, 36.3, 36.27, 36.32, 36.366, 36.366, 36.366, 36.313,
36.25, 36.33, 36.28, 36.307, 36.307, 36.307, 36.285,
36.22, 36.15, 36.14, 36.02, 36.02, 36.02)), .Names = c("Date",
"THB.OPEN", "THB.HIGH", "THB.LOW", "THB.CLOSE", "THB.LAST"
), row.names = c(NA, -243L), class = "data.frame"))
And the two functions listed within the original function is here:
price.channel <- function(MergedData)
{
ret <- as.list(rep(NA, length(MergedData)))
for (i in 1:length(MergedData)) {
x<- MergedData[[i]]
x <- xts(x[,-1], order.by=x[,1])
high <- runMax(x[,2], 20)
low <- runMin(x[,3], 20)
mid <- (high+low)/2
channel <- cbind(high, mid, low)
sig <- ifelse(sign(high-x[,5])>=0, sign(high-x[,5]), sign(low-x[,5]))
ret[[i]] <- sig
}
na.omit(do.call(merge, ret))
}
ma.crossover<- function(MergedData){
ma <- as.list(rep(NA, length(MergedData)))
for(i in 1:length(MergedData)) {
x <- MergedData[[i]]
x <- xts(x[,-1], order.by=x[,1])
ma20 <- SMA(x[,3], n=20)
ma50 <- SMA(x[,3], n=50)
ma[[i]] <- sign(ma20 - ma50)
}
na.omit(do.call(merge, ma))
}
And I want to create a table from new.trend with the following:
out.trend <- matrix(new.trend(MergedData), ncol = 3, byrow = TRUE, dimnames = list(paste0(cursig), c("% dev from 20MA", "% dev from 20MA", "RSI")))
I think manotheshark's answer is right about not needing a for loop and using intersect(), you could do it like this without relying on names():
The dummy data:
ma.sig <- read.table(text = "Eur JPY GBP CHF AUD CAD NZD SEK NOK
1 0 1 0 1 1 0 0 0", header = T)
pricebreak <- read.table(text = "Eur JPY GBP CHF AUD CAD NZD SEK NOK
1 0 1 0 1 1 0 1 1", , header = T)
cur <- c("EUR", "JPY","GBP", "CHF", "AUD", "CAD", "NZD", "SEK", "NOK", "CZK", "HUF", "ILS")
Manotheshark's method, without names():
sig <- intersect(which(!ma.sig[1,]==0), which(!pricebreak[1,]==0)) ## Retrieves signals
sig
[1] 1 3 5 6
cur[sig]
"EUR" "GBP" "AUD" "CAD"
Or your idea for a for loop with my comment:
cursig <- character()
for (i in sig) { #not 1:length(sig) thats always 1,2,3... in order
cursig <- c(cursig, cur[i])
}
cursig
[1] "EUR" "GBP" "AUD" "CAD"
If I understand what you're trying to get, a for loop should not be required. You can index the vectors on the conditions you're looking for
names(ma.sig[ma.sig == 1])
names(price.break[price.break == 1])
This will return the names that meet both conditions
intersect(names(ma.sig[ma.sig == 1]), names(price.break[price.break == 1]))
[1] "Eur" "GBP" "AUD" "CAD"
My dataset is a list of 29 dataframes, such that one data frame looks like this:
>MergedData[[1]]
Date EUR.HIGH EUR.LOW EUR.CLOSE
1 2016-08-30 1.1192 1.1153 1.1161
2 2016-08-29 1.1208 1.1158 1.1189
3 2016-08-28 1.1341 1.1181 1.1198
4 2016-08-27 1.1341 1.1181 1.1198
5 2016-08-26 1.1341 1.1181 1.1198
6 2016-08-25 1.1298 1.1259 1.1285
7 2016-08-24 1.1312 1.1245 1.1264
So using this list, I calculated 'signals' in R with values of -2,1 and 0. I want R to do calculations and leave them in an output for variables that have values that aren't zero. Here's what my signal looks like in R:
>price.break
EUR JPY GBP CHF AUD CAD NZD SEK
2016-02-19 NA NA NA NA NA NA NA NA
2016-02-20 0 -2 0 0 -2 0 0 0
2016-02-21 0 0 0 0 0 0 0 0
>ma.sig
EUR JPY GBP CHF AUD CAD NZD SEK
2016-02-19 NA NA NA NA NA NA NA NA
2016-02-20 0 1 0 0 1 0 0 0
2016-02-21 0 0 0 0 0 0 0 0
Since we have that both JPY and AUD have returned non-zero signals, I want R to calculate an output table that looks like this:
Currency Deviation from MA RSI
JPY
AUD
Here is my (rather terrible) attempt at trying to have R do this:
new.trend <- function(x)
{
ret <- as.list(rep(NA, length(x)))
for (i in 1:length(MergedData)){
x <- MergedData[[i]]
x <- xts(x[,-1], order.by=x[,1])
ma.sig <- ma.crossover(x)
pricebreak <- price.channel(x)
sig.col <- col(x)[which(!ma.sig[,i]&ma.sig[,i-1)]==0)&which(!pricebreak[,i]&pricebreak[,i-1]==0)]
sig.row <- row(x)[which(!ma.sig[,i]&ma.sig[,i-1)]==0)&which(!pricebreak[,i]&pricebreak[,i-1]==0)]
ma20 <- SMA(x[sig.row, sig.col], n=20)
ma50 <- SMA(x[sig.row, sig.col], n=50)
RSI <- RSI(x[sig.row, sig.col], n=14)
dev20 <- x[sig.row, sig.col]-ma20[sig.row, sig.col]/x[sig.row, sig.col]*100
dev50 <- x[sig.row, sig.col]-ma50[sig.row, sig.col]/x[sig.row, sig.col]*100
ret[[i]] <- merge(RSI, 20dev, 50dev)
}
na.omit(do.call(merge,ret))
}
With sig.col and sig.row, I'm hoping to extract the exact row/column number in order to selectively calculate the instances where we get nonnegative signals. I get the error saying 'incorrect number dimensions', and I have a strong feeling what I'm doing isn't correct anyway.
ma.crossover and pricebreak are just functions that calculate the following:
ma.crossover<- function(MergedData){
ma <- as.list(rep(NA, length(MergedData)))
for(i in 1:length(MergedData)) {
x <- MergedData[[i]]
x <- xts(x[,-1], order.by=x[,1])
ma20 <- SMA(x[,3], n=20)
ma50 <- SMA(x[,3], n=50)
ma[[i]] <- sign(ma20 - ma50)
}
na.omit(do.call(merge, ma))
}
##price channel
price.channel <- function(MergedData)
{
ret <- as.list(rep(NA, length(MergedData)))
for (i in 1:length(MergedData)) {
x<- MergedData[[i]]
x <- xts(x[,-1], order.by=x[,1])
high <- runMax(x[,2], 20)
low <- runMin(x[,3], 20)
mid <- (high+low)/2
channel <- cbind(high, mid, low)
ret[[i]] <- merge(sign(high-x[,5]), sign(x[,5]-low))
}
na.omit(do.call(merge, ret))
}
I've been stuck on this for some time, so comments or feedback would be very much appreciated. Here's a sample of my dput, if that helps:
tzone = "", class = c("POSIXct",
"POSIXt")), PHP.OPEN = c(46.385, 46.283, 46.283, 46.283,
46.283, 46.33, 46.45, 46.45, 46.5, 46.29, 46.29, 46.29, 46.235,
46.28, 46.225, 46.445, 46.455, 46.455, 46.455, 46.365, 46.73,
46.85, 46.423, 46.05, 46.05, 46.05, 46.975, 46.03, 46.035,
46.915, 47.017, 47.017, 47.017, 47.05, 46.825, 47.105, 47.12,
47, 47, 47, 47.055, 46.015, 46.725, 46.675, 46.671, 46.671,
46.671, 47.019, 47, 47.055, 47.033, 47, 47, 47, 46.85, 46.765,
46.765, 46.753, 46.465, 46.465, 46.465, 46.035, 46.49, 45.93,
46.955, 46.51, 46.51, 46.51, 46.475, 46.365, 46.31, 46.3,
44.623, 44.623, 44.623, 46.285, 46.31, 46.073, 46.07, 46.06,
46.06, 46.06, 45.859, 46, 45.728, 46.2, 46.452, 46.452, 46.452,
46.53, 46.64, 46.653, 46.69, 46.614, 46.614, 46.614, 46.429,
46.63, 46.788, 46.69, 46.714, 46.714, 46.714, 46.705, 46.465,
46.325, 46.055, 46.55, 46.55, 46.55, 46.458, 46.53, 46.753,
47.085, 47.085, 47.085, 47.085, 47.118, 46.595, 46.845, 46.225,
46.66, 46.66, 46.66, 46.722, 46.64, 46.728, 46.683, 46.285,
46.285, 46.285, 46.224, 46.04, 46.055, 46.06, 46.049, 46.049,
46.049, 46.154, 45.903, 46.017, 46, 46.12, 46.12, 46.12,
46.07, 46.165, 46.153, 45, 45.95, 45.95, 45.95, 45.91, 46.02,
46.235, 46.325, 46.227, 46.227, 46.227, 46.227, 46.227, 46.16,
46, 46.168, 46.168, 46.168, 46.357, 46.475, 46.61, 46.439,
46.595, 46.595, 46.595, 46.653, 46.835, 46.285, 46.772, 46.861,
46.861, 46.861, 47.02, 47.225, 47.3, 47.525, 47.076, 47.076,
47.076, 47.62, 47.613, 47.575, 47.585, 47.552, 47.552, 47.552,
47.51, 47.45, 47.403, 47.435, 47.45, 47.45, 47.45, 47.375,
47.445, 47, 47.665, 47.665, 47.665, 47.665, 47.719, 47.825,
47.67, 47.623, 47.615, 47.615, 47.615, 47.717, 47.809, 47.869,
47.72, 47.8, 47.8, 47.8, 47.695, 47.67, 47.586, 47.635, 47.63,
47.63, 47.63, 47.55, 47.335, 47.2, 47.233, 46.92, 46.92,
46.92, 46.98, 46.82, 46.875, 47, 47.17, 47.17, 47.17), PHP.HIGH = c(46.535,
46.438, 46.438, 46.438, 46.438, 46.583, 46.645, 46.59, 46.702,
46.488, 46.488, 46.488, 46.41, 46.88, 46.88, 46.77, 46.865,
46.865, 46.865, 46.8, 46.865, 46.975, 47.02, 47.04, 47.04,
47.04, 47.075, 47.358, 47.487, 47.03, 47.135, 47.135, 47.135,
47.18, 47.228, 47.24, 47.228, 47.155, 47.155, 47.155, 47.23,
47.158, 46.96, 46.89, 47.055, 47.055, 47.055, 47.22, 47.435,
47.49, 47.32, 47.585, 47.585, 47.585, 47.112, 47.345, 47.345,
46.895, 47.065, 47.065, 47.065, 47.935, 47.98, 47.95, 47.183,
46.975, 46.975, 46.975, 46.587, 46.64, 46.388, 46.445, 46.475,
46.475, 46.475, 46.455, 46.479, 47.065, 46.222, 46.155, 46.155,
46.155, 46.388, 46.12, 46.265, 46.45, 46.982, 46.982, 46.982,
46.615, 46.79, 47.065, 46.825, 46.71, 46.71, 46.71, 46.788,
46.889, 46.925, 46.86, 46.86, 46.86, 46.86, 46.947, 46.705,
46.457, 46.655, 46.8, 46.8, 46.8, 46.715, 46.75, 47.205,
47.385, 47.385, 47.385, 47.385, 47.245, 47.132, 47.75, 47.041,
46.964, 46.964, 46.964, 46.878, 46.842, 46.94, 46.874, 46.68,
46.68, 46.68, 46.46, 46.225, 46.16, 46.2, 46.25, 46.25, 46.25,
46.306, 46.487, 46.14, 46.18, 46.266, 46.266, 46.266, 46.17,
46.338, 46.295, 46.105, 47.02, 47.02, 47.02, 46.085, 46.262,
46.439, 46.537, 46.463, 46.463, 46.463, 46.463, 46.463, 46.39,
46.577, 46.379, 46.379, 46.379, 46.58, 46.925, 46.83, 46.607,
46.795, 46.795, 46.795, 46.855, 47.025, 47.035, 46.925, 47.125,
47.125, 47.125, 47.252, 47.307, 47.5, 47.605, 47.603, 47.603,
47.603, 47.62, 47.717, 47.66, 47.705, 47.905, 47.905, 47.905,
47.595, 47.695, 47.59, 47.555, 47.74, 47.74, 47.74, 47.488,
47.632, 47.795, 47.757, 47.757, 47.757, 47.757, 47.8, 47.925,
47.79, 47.74, 47.775, 47.775, 47.775, 47.945, 47.995, 48.005,
47.9, 47.911, 47.911, 47.911, 47.958, 47.895, 47.755, 47.885,
47.78, 47.78, 47.78, 47.748, 47.55, 47.46, 47.335, 47.173,
47.173, 47.173, 47.14, 47.062, 47.188, 47.158, 47.17, 47.17,
47.17), PHP.LOW = c(46.385, 46.283, 46.283, 46.283, 46.283,
46.33, 46.45, 46.45, 46.5, 46.29, 46.29, 46.29, 46.235, 46.28,
46.225, 46.445, 46.455, 46.455, 46.455, 46.365, 46.73, 46.85,
46.423, 46.05, 46.05, 46.05, 46.975, 46.03, 46.035, 46.915,
47.017, 47.017, 47.017, 47.05, 46.825, 47.105, 47.12, 47,
47, 47, 47.055, 46.015, 46.725, 46.675, 46.671, 46.671, 46.671,
47.019, 47, 47.055, 47.033, 47, 47, 47, 46.85, 46.765, 46.765,
46.753, 46.465, 46.465, 46.465, 46.035, 46.49, 45.93, 46.955,
46.51, 46.51, 46.51, 46.475, 46.365, 46.31, 46.3, 44.623,
44.623, 44.623, 46.285, 46.31, 46.073, 46.07, 46.06, 46.06,
46.06, 45.859, 46, 45.728, 46.2, 46.452, 46.452, 46.452,
46.53, 46.64, 46.653, 46.69, 46.614, 46.614, 46.614, 46.429,
46.63, 46.788, 46.69, 46.714, 46.714, 46.714, 46.705, 46.465,
46.325, 46.055, 46.55, 46.55, 46.55, 46.458, 46.53, 46.753,
47.085, 47.085, 47.085, 47.085, 47.118, 46.595, 46.845, 46.225,
46.66, 46.66, 46.66, 46.722, 46.64, 46.728, 46.683, 46.285,
46.285, 46.285, 46.224, 46.04, 46.055, 46.06, 46.049, 46.049,
46.049, 46.154, 45.903, 46.017, 46, 46.12, 46.12, 46.12,
46.07, 46.165, 46.153, 45, 45.95, 45.95, 45.95, 45.91, 46.02,
46.235, 46.325, 46.227, 46.227, 46.227, 46.227, 46.227, 46.16,
46, 46.168, 46.168, 46.168, 46.357, 46.475, 46.61, 46.439,
46.595, 46.595, 46.595, 46.653, 46.835, 46.285, 46.772, 46.861,
46.861, 46.861, 47.02, 47.225, 47.3, 47.525, 47.076, 47.076,
47.076, 47.62, 47.613, 47.575, 47.585, 47.552, 47.552, 47.552,
47.51, 47.45, 47.403, 47.435, 47.45, 47.45, 47.45, 47.375,
47.445, 47, 47.665, 47.665, 47.665, 47.665, 47.719, 47.825,
47.67, 47.623, 47.615, 47.615, 47.615, 47.717, 47.809, 47.869,
47.72, 47.8, 47.8, 47.8, 47.695, 47.67, 47.586, 47.635, 47.63,
47.63, 47.63, 47.55, 47.335, 47.2, 47.233, 46.92, 46.92,
46.92, 46.98, 46.82, 46.875, 47, 47.17, 47.17, 47.17), PHP.CLOSE = c(46.46,
46.36, 46.36, 46.36, 46.36, 46.345, 46.535, 46.45, 46.58,
46.45, 46.45, 46.45, 46.28, 46.41, 46.88, 46.455, 46.6, 46.6,
46.6, 46.79, 46.75, 46.85, 46.835, 46.9, 46.9, 46.9, 47.02,
47.035, 46.961, 46.94, 47.11, 47.11, 47.11, 47.07, 47.18,
47.14, 47.15, 47.12, 47.12, 47.12, 47.077, 46.725, 46.94,
46.714, 46.85, 46.85, 46.85, 47.05, 47.21, 47.321, 47.31,
47.125, 47.125, 47.125, 47, 47.03, 47.03, 46.775, 46.915,
46.915, 46.915, 47.085, 46.965, 46.895, 47.03, 46.95, 46.95,
46.95, 46.51, 46.475, 46.38, 46.335, 46.425, 46.425, 46.425,
46.43, 46.43, 46.31, 46.08, 46.13, 46.13, 46.13, 46.055,
46.01, 46.11, 46.225, 46.465, 46.465, 46.465, 46.53, 46.64,
46.75, 46.75, 46.635, 46.635, 46.635, 46.69, 46.785, 46.92,
46.788, 46.75, 46.75, 46.75, 46.8, 46.66, 46.42, 46.46, 46.555,
46.555, 46.555, 46.647, 46.555, 46.757, 47.09, 47.09, 47.09,
47.09, 47.24, 47.08, 46.89, 46.965, 46.89, 46.89, 46.89,
46.77, 46.78, 46.76, 46.85, 46.645, 46.645, 46.645, 46.44,
46.225, 46.093, 46.185, 46.065, 46.065, 46.065, 46.25, 46.085,
46.018, 46.122, 46.135, 46.135, 46.135, 46.1, 46.2, 46.26,
46.08, 46.015, 46.015, 46.015, 46.07, 46.028, 46.35, 46.34,
46.395, 46.395, 46.395, 46.395, 46.395, 46.285, 46.33, 46.36,
46.36, 46.36, 46.38, 46.785, 46.83, 46.595, 46.62, 46.62,
46.62, 46.695, 46.855, 46.958, 46.92, 46.946, 46.946, 46.946,
47.125, 47.298, 47.35, 47.558, 47.515, 47.515, 47.515, 47.62,
47.625, 47.635, 47.619, 47.665, 47.665, 47.665, 47.55, 47.45,
47.573, 47.45, 47.74, 47.74, 47.74, 47.45, 47.47, 47.671,
47.665, 47.665, 47.665, 47.665, 47.775, 47.86, 47.685, 47.69,
47.65, 47.65, 47.65, 47.743, 47.815, 47.997, 47.89, 47.805,
47.805, 47.805, 47.935, 47.89, 47.67, 47.706, 47.745, 47.745,
47.745, 47.64, 47.542, 47.45, 47.269, 47.158, 47.158, 47.158,
47.01, 47.025, 46.89, 47.125, 47.17, 47.17, 47.17), PHP.LAST = c(46.46,
46.36, 46.36, 46.36, 46.36, 46.345, 46.535, 46.45, 46.58,
46.45, 46.45, 46.45, 46.28, 46.41, 46.88, 46.455, 46.6, 46.6,
46.6, 46.79, 46.75, 46.85, 46.835, 46.9, 46.9, 46.9, 47.02,
47.035, 46.961, 46.94, 47.11, 47.11, 47.11, 47.07, 47.18,
47.14, 47.15, 47.12, 47.12, 47.12, 47.077, 46.725, 46.94,
46.714, 46.85, 46.85, 46.85, 47.05, 47.21, 47.321, 47.31,
47.125, 47.125, 47.125, 47, 47.03, 47.03, 46.775, 46.915,
46.915, 46.915, 47.085, 46.965, 46.895, 47.03, 46.95, 46.95,
46.95, 46.51, 46.475, 46.38, 46.335, 46.425, 46.425, 46.425,
46.43, 46.43, 46.31, 46.08, 46.13, 46.13, 46.13, 46.055,
46.01, 46.11, 46.225, 46.465, 46.465, 46.465, 46.53, 46.64,
46.75, 46.75, 46.635, 46.635, 46.635, 46.69, 46.785, 46.92,
46.788, 46.75, 46.75, 46.75, 46.8, 46.66, 46.42, 46.46, 46.555,
46.555, 46.555, 46.647, 46.555, 46.757, 47.09, 47.09, 47.09,
47.09, 47.24, 47.08, 46.89, 46.965, 46.89, 46.89, 46.89,
46.77, 46.78, 46.76, 46.85, 46.645, 46.645, 46.645, 46.44,
46.225, 46.093, 46.185, 46.065, 46.065, 46.065, 46.25, 46.085,
46.018, 46.122, 46.135, 46.135, 46.135, 46.1, 46.2, 46.26,
46.08, 46.015, 46.015, 46.015, 46.07, 46.028, 46.35, 46.34,
46.395, 46.395, 46.395, 46.395, 46.395, 46.285, 46.33, 46.36,
46.36, 46.36, 46.38, 46.785, 46.83, 46.595, 46.62, 46.62,
46.62, 46.695, 46.855, 46.958, 46.92, 46.946, 46.946, 46.946,
47.125, 47.298, 47.35, 47.558, 47.515, 47.515, 47.515, 47.62,
47.625, 47.635, 47.619, 47.665, 47.665, 47.665, 47.55, 47.45,
47.573, 47.45, 47.74, 47.74, 47.74, 47.45, 47.47, 47.671,
47.665, 47.665, 47.665, 47.665, 47.775, 47.86, 47.685, 47.69,
47.65, 47.65, 47.65, 47.743, 47.815, 47.997, 47.89, 47.805,
47.805, 47.805, 47.935, 47.89, 47.67, 47.706, 47.745, 47.745,
47.745, 47.64, 47.542, 47.45, 47.269, 47.158, 47.158, 47.158,
47.01, 47.025, 46.89, 47.125, 47.17, 47.17, 47.17)), .Names = c("Date",
"PHP.OPEN", "PHP.HIGH", "PHP.LOW", "PHP.CLOSE", "PHP.LAST"
), row.names = c(NA, -243L), class = "data.frame"), structure(list(
Date = structure(c(1472533200, 1472446800, 1472360400,
1472274000, 1472187600, 1472101200, 1472014800, 1471928400,
1471842000, 1471755600, 1471669200, 1471582800, 1471496400,
1471410000, 1471323600, 1471237200, 1471150800, 1471064400,
1470978000, 1470891600, 1470805200, 1470718800, 1470632400,
1470546000, 1470459600, 1470373200, 1470286800, 1470200400,
1470114000, 1470027600, 1469941200, 1469854800, 1469768400,
1469682000, 1469595600, 1469509200, 1469422800, 1469336400,
1469250000, 1469163600, 1469077200, 1468990800, 1468904400,
1468818000, 1468731600, 1468645200, 1468558800, 1468472400,
1468386000, 1468299600, 1468213200, 1468126800, 1468040400,
1467954000, 1467867600, 1467781200, 1467694800, 1467608400,
1467522000, 1467435600, 1467349200, 1467262800, 1467176400,
1467090000, 1467003600, 1466917200, 1466830800, 1466744400,
1466658000, 1466571600, 1466485200, 1466398800, 1466312400,
1466226000, 1466139600, 1466053200, 1465966800, 1465880400,
1465794000, 1465707600, 1465621200, 1465534800, 1465448400,
1465362000, 1465275600, 1465189200, 1465102800, 1465016400,
1464930000, 1464843600, 1464757200, 1464670800, 1464584400,
1464498000, 1464411600, 1464325200, 1464238800, 1464152400,
1464066000, 1463979600, 1463893200, 1463806800, 1463720400,
1463634000, 1463547600, 1463461200, 1463374800, 1463288400,
1463202000, 1463115600, 1463029200, 1462942800, 1462856400,
1462770000, 1462683600, 1462597200, 1462510800, 1462424400,
1462338000, 1462251600, 1462165200, 1462078800, 1461992400,
1461906000, 1461819600, 1461733200, 1461646800, 1461560400,
1461474000, 1461387600, 1461301200, 1461214800, 1461128400,
1461042000, 1460955600, 1460869200, 1460782800, 1460696400,
1460610000, 1460523600, 1460437200, 1460350800, 1460264400,
1460178000, 1460091600, 1460005200, 1459918800, 1459832400,
1459746000, 1459659600, 1459573200, 1459486800, 1459400400,
1459314000, 1459227600, 1459141200, 1459054800, 1458968400,
1458882000, 1458795600, 1458709200, 1458622800, 1458536400,
1458450000, 1458363600, 1458277200, 1458190800, 1458104400,
1458018000, 1457931600, 1457848800, 1457762400, 1457676000,
1457589600, 1457503200, 1457416800, 1457330400, 1457244000,
1457157600, 1457071200, 1456984800, 1456898400, 1456812000,
1456725600, 1456639200, 1456552800, 1456466400, 1456380000,
1456293600, 1456207200, 1456120800, 1456034400, 1455948000,
1455861600, 1455775200, 1455688800, 1455602400, 1455516000,
1455429600, 1455343200, 1455256800, 1455170400, 1455084000,
1454997600, 1454911200, 1454824800, 1454738400, 1454652000,
1454565600, 1454479200, 1454392800, 1454306400, 1454220000,
1454133600, 1454047200, 1453960800, 1453874400, 1453788000,
1453701600, 1453615200, 1453528800, 1453442400, 1453356000,
1453269600, 1453183200, 1453096800, 1453010400, 1452924000,
1452837600, 1452751200, 1452664800, 1452578400, 1452492000,
1452405600, 1452319200, 1452232800, 1452146400, 1452060000,
1451973600, 1451887200, 1451800800, 1451714400, 1451628000
), tzone = "", class = c("POSIXct", "POSIXt")), THB.OPEN = c(34.53,
34.596, 34.506, 34.506, 34.506, 34.539, 34.573, 34.564,
34.607, 34.528, 34.528, 34.528, 34.531, 34.577, 34.52,
34.577, 34.696, 34.696, 34.696, 34.731, 34.738, 34.911,
34.901, 34.796, 34.796, 34.796, 34.886, 34.739, 34.74,
34.72, 34.8, 34.8, 34.8, 34.84, 34.951, 34.98, 34.905,
34.87, 34.87, 34.87, 34.95, 34.97, 34.931, 34.918, 34.907,
34.907, 34.907, 35.029, 35.13, 35.103, 35.049, 35.169,
35.169, 35.169, 35.145, 35.149, 35.012, 35.011, 35.06,
35.06, 35.06, 35.097, 35.175, 35.238, 35.257, 35.114,
35.114, 35.114, 35.146, 35.173, 35.15, 35.162, 35.225,
35.225, 35.225, 35.151, 35.24, 35.12, 35.16, 35.147,
35.147, 35.147, 35.085, 35.189, 35.217, 35.26, 35.545,
35.545, 35.545, 35.57, 35.64, 35.691, 35.69, 35.56, 35.56,
35.56, 35.571, 35.625, 35.664, 35.56, 35.622, 35.622,
35.622, 35.641, 35.486, 35.32, 35.341, 35.311, 35.311,
35.311, 35.217, 35.19, 35.193, 35.09, 35.126, 35.126,
35.126, 35.075, 34.99, 34.83, 34.83, 34.885, 34.885,
34.885, 35.007, 35.09, 35.08, 35.052, 35.02, 35.02, 35.02,
34.883, 34.825, 34.88, 35.01, 35.051, 35.051, 35.051,
35.024, 34.951, 35.005, 35.04, 35.09, 35.09, 35.09, 35.15,
35.214, 35.237, 35.12, 35.09, 35.09, 35.09, 35.159, 35.189,
35.323, 35.274, 35.265, 35.265, 35.265, 35.188, 34.917,
34.88, 34.85, 34.745, 34.745, 34.745, 34.77, 34.99, 35.07,
35.05, 35.064, 35.064, 35.064, 35.239, 35.287, 35.365,
35.349, 35.385, 35.385, 35.385, 35.476, 35.54, 35.588,
35.618, 35.63, 35.63, 35.63, 35.65, 35.69, 35.715, 35.717,
35.54, 35.54, 35.54, 35.537, 35.6, 35.59, 35.552, 35.228,
35.228, 35.228, 35.228, 35.3, 35.388, 35.495, 35.48,
35.48, 35.48, 35.55, 35.77, 35.579, 35.591, 35.684, 35.684,
35.684, 35.775, 35.77, 35.89, 35.925, 36.026, 36.026,
36.026, 36.235, 36.272, 36.26, 36.29, 36.28, 36.28, 36.28,
36.256, 36.237, 36.235, 36.25, 36.17, 36.17, 36.17, 36.226,
36.103, 36.08, 36.033, 36.02, 36.02, 36.02), THB.HIGH = c(34.655,
34.72, 34.601, 34.601, 34.601, 34.675, 34.69, 34.676,
34.764, 34.671, 34.671, 34.671, 34.69, 34.737, 34.65,
34.82, 34.86, 34.86, 34.86, 34.838, 34.967, 35.005, 35.065,
34.93, 34.93, 34.93, 35.039, 34.95, 34.84, 34.91, 34.92,
34.92, 34.92, 34.967, 35.074, 35.086, 35.08, 35, 35,
35, 35.088, 35.09, 35.04, 35.03, 35.085, 35.085, 35.085,
35.23, 35.257, 35.206, 35.225, 35.264, 35.264, 35.264,
35.239, 35.281, 35.198, 35.125, 35.16, 35.16, 35.16,
35.228, 35.295, 35.371, 35.435, 35.546, 35.546, 35.546,
35.244, 35.29, 35.24, 35.284, 35.356, 35.356, 35.356,
35.254, 35.39, 35.303, 35.295, 35.295, 35.295, 35.295,
35.24, 35.241, 35.327, 35.411, 35.64, 35.64, 35.64, 35.704,
35.77, 35.755, 35.8, 35.701, 35.701, 35.701, 35.68, 35.795,
35.787, 35.706, 35.736, 35.736, 35.736, 35.8, 35.625,
35.557, 35.461, 35.466, 35.466, 35.466, 35.34, 35.294,
35.267, 35.166, 35.193, 35.193, 35.193, 35.19, 35.184,
34.94, 34.934, 35.009, 35.009, 35.009, 35.16, 35.195,
35.222, 35.17, 35.095, 35.095, 35.095, 35.095, 34.949,
35.02, 35.11, 35.12, 35.12, 35.12, 35.211, 35.055, 35.07,
35.112, 35.234, 35.234, 35.234, 35.253, 35.31, 35.39,
35.29, 35.175, 35.175, 35.175, 35.262, 35.365, 35.44,
35.408, 35.365, 35.365, 35.365, 35.395, 35.13, 34.963,
34.952, 34.925, 34.925, 34.925, 34.975, 35.145, 35.15,
35.151, 35.26, 35.26, 35.26, 35.31, 35.393, 35.47, 35.495,
35.46, 35.46, 35.46, 35.559, 35.656, 35.655, 35.763,
35.707, 35.707, 35.707, 35.714, 35.759, 35.776, 35.781,
35.75, 35.75, 35.75, 35.63, 35.68, 35.671, 35.69, 35.64,
35.64, 35.64, 35.325, 35.428, 35.539, 35.612, 35.651,
35.651, 35.651, 35.755, 35.87, 35.771, 35.77, 35.861,
35.861, 35.861, 35.885, 35.874, 36.045, 36.055, 36.253,
36.253, 36.253, 36.29, 36.327, 36.325, 36.382, 36.374,
36.374, 36.374, 36.345, 36.338, 36.375, 36.345, 36.327,
36.327, 36.327, 36.35, 36.257, 36.177, 36.19, 36.033,
36.033, 36.033), THB.LOW = c(34.53, 34.596, 34.506, 34.506,
34.506, 34.539, 34.573, 34.564, 34.607, 34.528, 34.528,
34.528, 34.531, 34.577, 34.52, 34.577, 34.696, 34.696,
34.696, 34.731, 34.738, 34.911, 34.901, 34.796, 34.796,
34.796, 34.886, 34.739, 34.74, 34.72, 34.8, 34.8, 34.8,
34.84, 34.951, 34.98, 34.905, 34.87, 34.87, 34.87, 34.95,
34.97, 34.931, 34.918, 34.907, 34.907, 34.907, 35.029,
35.13, 35.103, 35.049, 35.169, 35.169, 35.169, 35.145,
35.149, 35.012, 35.011, 35.06, 35.06, 35.06, 35.097,
35.175, 35.238, 35.257, 35.114, 35.114, 35.114, 35.146,
35.173, 35.15, 35.162, 35.225, 35.225, 35.225, 35.151,
35.24, 35.12, 35.16, 35.147, 35.147, 35.147, 35.085,
35.189, 35.217, 35.26, 35.545, 35.545, 35.545, 35.57,
35.64, 35.691, 35.69, 35.56, 35.56, 35.56, 35.571, 35.625,
35.664, 35.56, 35.622, 35.622, 35.622, 35.641, 35.486,
35.32, 35.341, 35.311, 35.311, 35.311, 35.217, 35.19,
35.193, 35.09, 35.126, 35.126, 35.126, 35.075, 34.99,
34.83, 34.83, 34.885, 34.885, 34.885, 35.007, 35.09,
35.08, 35.052, 35.02, 35.02, 35.02, 34.883, 34.825, 34.88,
35.01, 35.051, 35.051, 35.051, 35.024, 34.951, 35.005,
35.04, 35.09, 35.09, 35.09, 35.15, 35.214, 35.237, 35.12,
35.09, 35.09, 35.09, 35.159, 35.189, 35.323, 35.274,
35.265, 35.265, 35.265, 35.188, 34.917, 34.88, 34.85,
34.745, 34.745, 34.745, 34.77, 34.99, 35.07, 35.05, 35.064,
35.064, 35.064, 35.239, 35.287, 35.365, 35.349, 35.385,
35.385, 35.385, 35.476, 35.54, 35.588, 35.618, 35.63,
35.63, 35.63, 35.65, 35.69, 35.715, 35.717, 35.54, 35.54,
35.54, 35.537, 35.6, 35.59, 35.552, 35.228, 35.228, 35.228,
35.228, 35.3, 35.388, 35.495, 35.48, 35.48, 35.48, 35.55,
35.77, 35.579, 35.591, 35.684, 35.684, 35.684, 35.775,
35.77, 35.89, 35.925, 36.026, 36.026, 36.026, 36.235,
36.272, 36.26, 36.29, 36.28, 36.28, 36.28, 36.256, 36.237,
36.235, 36.25, 36.17, 36.17, 36.17, 36.226, 36.103, 36.08,
36.033, 36.02, 36.02, 36.02), THB.CLOSE = c(34.558, 34.601,
34.565, 34.565, 34.565, 34.565, 34.618, 34.64, 34.67,
34.635, 34.635, 34.635, 34.605, 34.7, 34.575, 34.61,
34.81, 34.81, 34.81, 34.76, 34.751, 34.965, 34.974, 34.822,
34.822, 34.822, 34.927, 34.94, 34.75, 34.77, 34.83, 34.83,
34.83, 34.868, 34.97, 35.01, 35.05, 34.93, 34.93, 34.93,
34.995, 34.989, 35.01, 35.005, 34.94, 34.94, 34.94, 35.03,
35.16, 35.138, 35.11, 35.25, 35.25, 35.25, 35.173, 35.214,
35.134, 35.048, 35.086, 35.086, 35.086, 35.138, 35.23,
35.29, 35.35, 35.339, 35.339, 35.339, 35.173, 35.24,
35.173, 35.21, 35.235, 35.235, 35.235, 35.24, 35.25,
35.3, 35.18, 35.26, 35.26, 35.26, 35.21, 35.21, 35.23,
35.28, 35.629, 35.629, 35.629, 35.61, 35.67, 35.705,
35.75, 35.658, 35.658, 35.658, 35.6, 35.71, 35.73, 35.66,
35.679, 35.679, 35.679, 35.71, 35.6, 35.49, 35.37, 35.43,
35.43, 35.43, 35.32, 35.27, 35.236, 35.13, 35.149, 35.149,
35.149, 35.179, 35.184, 34.92, 34.841, 34.92, 34.92,
34.92, 35.02, 35.15, 35.16, 35.11, 35.04, 35.04, 35.04,
35.01, 34.86, 34.91, 35.03, 35.065, 35.065, 35.065, 35.12,
35.036, 35.02, 35.07, 35.12, 35.12, 35.12, 35.205, 35.256,
35.32, 35.263, 35.105, 35.105, 35.105, 35.185, 35.235,
35.426, 35.36, 35.27, 35.27, 35.27, 35.35, 35.118, 34.91,
34.89, 34.85, 34.85, 34.85, 34.78, 35.02, 35.132, 35.08,
35.16, 35.16, 35.16, 35.25, 35.32, 35.425, 35.42, 35.403,
35.403, 35.403, 35.51, 35.57, 35.625, 35.64, 35.64, 35.64,
35.64, 35.68, 35.7, 35.74, 35.755, 35.745, 35.745, 35.745,
35.548, 35.61, 35.61, 35.65, 35.58, 35.58, 35.58, 35.245,
35.36, 35.489, 35.51, 35.497, 35.497, 35.497, 35.56,
35.841, 35.76, 35.605, 35.73, 35.73, 35.73, 35.825, 35.79,
35.908, 36.021, 36.037, 36.037, 36.037, 36.263, 36.3,
36.27, 36.32, 36.366, 36.366, 36.366, 36.313, 36.25,
36.33, 36.28, 36.307, 36.307, 36.307, 36.285, 36.22,
36.15, 36.14, 36.02, 36.02, 36.02), THB.LAST = c(34.558,
34.601, 34.565, 34.565, 34.565, 34.565, 34.618, 34.64,
34.67, 34.635, 34.635, 34.635, 34.605, 34.7, 34.575,
34.61, 34.81, 34.81, 34.81, 34.76, 34.751, 34.965, 34.974,
34.822, 34.822, 34.822, 34.927, 34.94, 34.75, 34.77,
34.83, 34.83, 34.83, 34.868, 34.97, 35.01, 35.05, 34.93,
34.93, 34.93, 34.995, 34.989, 35.01, 35.005, 34.94, 34.94,
34.94, 35.03, 35.16, 35.138, 35.11, 35.25, 35.25, 35.25,
35.173, 35.214, 35.134, 35.048, 35.086, 35.086, 35.086,
35.138, 35.23, 35.29, 35.35, 35.339, 35.339, 35.339,
35.173, 35.24, 35.173, 35.21, 35.235, 35.235, 35.235,
35.24, 35.25, 35.3, 35.18, 35.26, 35.26, 35.26, 35.21,
35.21, 35.23, 35.28, 35.629, 35.629, 35.629, 35.61, 35.67,
35.705, 35.75, 35.658, 35.658, 35.658, 35.6, 35.71, 35.73,
35.66, 35.679, 35.679, 35.679, 35.71, 35.6, 35.49, 35.37,
35.43, 35.43, 35.43, 35.32, 35.27, 35.236, 35.13, 35.149,
35.149, 35.149, 35.179, 35.184, 34.92, 34.841, 34.92,
34.92, 34.92, 35.02, 35.15, 35.16, 35.11, 35.04, 35.04,
35.04, 35.01, 34.86, 34.91, 35.03, 35.065, 35.065, 35.065,
35.12, 35.036, 35.02, 35.07, 35.12, 35.12, 35.12, 35.205,
35.256, 35.32, 35.263, 35.105, 35.105, 35.105, 35.185,
35.235, 35.426, 35.36, 35.27, 35.27, 35.27, 35.35, 35.118,
34.91, 34.89, 34.85, 34.85, 34.85, 34.78, 35.02, 35.132,
35.08, 35.16, 35.16, 35.16, 35.25, 35.32, 35.425, 35.42,
35.403, 35.403, 35.403, 35.51, 35.57, 35.625, 35.64,
35.64, 35.64, 35.64, 35.68, 35.7, 35.74, 35.755, 35.745,
35.745, 35.745, 35.548, 35.61, 35.61, 35.65, 35.58, 35.58,
35.58, 35.245, 35.36, 35.489, 35.51, 35.497, 35.497,
35.497, 35.56, 35.841, 35.76, 35.605, 35.73, 35.73, 35.73,
35.825, 35.79, 35.908, 36.021, 36.037, 36.037, 36.037,
36.263, 36.3, 36.27, 36.32, 36.366, 36.366, 36.366, 36.313,
36.25, 36.33, 36.28, 36.307, 36.307, 36.307, 36.285,
36.22, 36.15, 36.14, 36.02, 36.02, 36.02)), .Names = c("Date",
"THB.OPEN", "THB.HIGH", "THB.LOW", "THB.CLOSE", "THB.LAST"
), row.names = c(NA, -243L), class = "data.frame"))
I have plotted cumulative distribution of speeds using ecdf but I also want to get the output of cumulative probability as a table like this:
Speed Cumulative Probability
40 0.20
45 0.45
55 0.51
60 0.70
70 0.90
80 1.00
For my data, when I use ecdf it gives me following (Note that 'cc' is my original data frame):
> ccf <- subset(cc, cc$svel>=55 & cc$Headway>=4)
> cdf<- ecdf(ccf$svel)
> cdf
Empirical CDF
Call: ecdf(ccf$svel)
x[1:356] = 55, 55.01, 55.02, ..., 76.76, 76.8
How can I get the table like the example above? Please note that I tried 'cumsum' but it only gives the cumulative frequency whereas I need cumulative probability.
EDIT
Here's my data:
dput(ccf$svel)
c(67.9, 67.62, 67.37, 67.19, 67.04, 66.93, 66.83, 66.74, 66.65,
66.55, 66.46, 66.36, 66.25, 66.12, 65.97, 61.12, 61.2, 61.29,
61.39, 61.49, 61.58, 61.66, 61.73, 61.79, 57.98, 57.73, 57.5,
57.29, 57.1, 56.92, 56.75, 56.59, 56.45, 56.32, 56.19, 58, 58.18,
58.36, 58.52, 58.69, 56.28, 56.19, 56.08, 55.96, 55.83, 55.68,
55.52, 55.34, 55.15, 58.58, 58.89, 59.17, 59.4, 59.58, 55.01,
55.14, 55.23, 55.3, 55.36, 55.41, 55.47, 55.53, 55.59, 55.66,
55.74, 55.83, 55.92, 56.03, 56.16, 56.3, 56.44, 56.58, 56.71,
56.82, 56.91, 56.98, 57.03, 57.06, 57.07, 57.07, 57.06, 57.04,
57.02, 55.05, 55.22, 55.39, 55.56, 55.73, 55.92, 56.11, 56.31,
56.53, 56.77, 57.02, 57.28, 57.54, 57.79, 58, 58.18, 58.32, 58.43,
58.5, 58.56, 58.6, 58.64, 58.68, 58.73, 58.8, 58.86, 58.92, 58.97,
59.01, 59.03, 59.05, 59.05, 59.04, 59.02, 58.99, 58.97, 58.95,
55.1, 55.39, 55.68, 55.97, 56.24, 56.48, 56.68, 56.82, 56.9,
56.94, 56.96, 56.97, 56.99, 57.02, 57.07, 57.14, 57.22, 57.3,
57.37, 57.41, 57.45, 57.48, 57.51, 57.56, 57.62, 57.69, 57.77,
57.86, 57.95, 58.06, 58.17, 58.29, 58.42, 58.53, 58.64, 58.74,
58.83, 58.91, 58.98, 55.01, 55.08, 55.15, 55.22, 55.3, 55.37,
55.45, 55.53, 55.62, 55.73, 55.85, 55.99, 56.14, 56.31, 56.49,
56.67, 56.87, 57.05, 57.22, 57.37, 57.51, 57.65, 57.79, 57.95,
58.13, 58.3, 58.47, 58.63, 58.78, 58.91, 59.03, 59.14, 59.24,
59.34, 59.43, 59.53, 59.62, 59.72, 59.81, 59.9, 59.98, 60.07,
60.15, 60.22, 60.31, 60.39, 60.47, 60.56, 60.65, 60.75, 60.86,
60.98, 61.11, 61.24, 61.39, 61.54, 61.71, 61.89, 62.09, 62.31,
62.56, 62.84, 63.14, 63.46, 63.78, 64.08, 64.81, 64.84, 64.85,
64.87, 64.89, 64.92, 64.94, 64.97, 65, 65.02, 65.04, 65.07, 65.11,
65.15, 65.17, 65.18, 65.17, 65.15, 65.13, 65.1, 65.06, 65.01,
64.96, 64.9, 64.84, 64.79, 64.76, 55.04, 55.15, 55.25, 55, 55.23,
55.45, 55.68, 55.9, 56.69, 56.74, 55, 55, 55, 55, 55, 55.01,
55.26, 55.51, 55.77, 56.02, 56.28, 56.56, 56.84, 57.13, 57.42,
57.7, 57.98, 58.25, 58.49, 58.73, 58.94, 59.13, 59.29, 59.4,
59.48, 59.5, 59.48, 59.42, 59.31, 59.17, 59, 58.8, 58.6, 58.38,
58.17, 57.96, 57.77, 57.59, 57.44, 57.31, 57.21, 57.13, 57.07,
57.04, 57.03, 57.04, 57.07, 57.11, 57.18, 57.26, 57.34, 57.43,
57.51, 57.59, 57.68, 57.78, 57.88, 57.99, 58.08, 58.16, 58.22,
58.27, 58.3, 58.31, 58.31, 58.3, 58.27, 58.25, 58.22, 58.18,
58.14, 58.08, 58.01, 57.93, 57.84, 57.72, 57.59, 57.43, 57.27,
57.1, 56.93, 56.77, 56.63, 56.5, 56.38, 56.28, 56.19, 56.12,
56.05, 55.99, 55.94, 55.9, 55.88, 55.86, 55.85, 55.86, 55.87,
55.89, 55.9, 55.91, 55.91, 55.88, 55.84, 55.78, 55.71, 55.63,
55.56, 55.5, 55.45, 55.4, 55.37, 55.34, 55.32, 55.3, 55.29, 55.27,
55.26, 55.26, 55.25, 55.25, 55.26, 55.26, 55.27, 55.28, 55.29,
55.31, 55.33, 55.36, 55.39, 55.02, 55.07, 55.12, 55.16, 55.21,
55.26, 55.31, 55.04, 55.21, 55.38, 55.54, 55.71, 55.88, 56.05,
56.21, 56.38, 56.54, 56.71, 56.88, 57.04, 57.2, 57.35, 55.46,
55.59, 55.74, 55.92, 56.11, 56.32, 56.54, 56.77, 57.02, 57.28,
55.22, 55.28, 55.35, 55.42, 55.5, 55.58, 55.68, 55.78, 55.88,
56, 55.15, 55.45, 55.72, 55.94, 56.11, 56.22, 56.29, 56.33, 56.36,
56.4, 56.45, 56.51, 56.59, 56.69, 56.81, 56.95, 57.11, 57.27,
57.44, 57.61, 57.78, 57.95, 58.12, 58.29, 58.46, 58.63, 58.79,
58.94, 59.08, 59.21, 59.32, 59.41, 55.13, 55.3, 55.47, 55.65,
55.83, 56.02, 56.22, 56.43, 56.66, 56.9, 55.17, 56.02, 56.11,
56.21, 56.32, 56.42, 56.52, 57.18, 57.29, 57.42, 76.27, 76.28,
76.3, 76.33, 76.37, 76.41, 76.47, 76.54, 76.62, 76.7, 76.76,
76.8, 76.8, 55.08, 55.16, 55.24, 55.32, 55.4, 55.48, 55.12, 55.39,
55.67, 55.94, 56.21, 56.47, 56.72, 56.97, 57.19, 57.4, 57.58,
57.73, 57.87, 57.99, 58.11)
Here is a function that will do it:
cumprob <- function(y) {
fun <- function(y, x) length(y[y<x])/length(y)
prob<-sapply(y, fun, y=y)
data<- data.frame(value=unique(y[order(y)]), prob=unique(prob[order(prob)]))
}
Testing in your data (here I called it data):
cp<-cumprob(data)
head(cp)
value prob
1 55.00 0.00000000
2 55.01 0.01156069
3 55.02 0.01734104
4 55.04 0.01926782
5 55.05 0.02312139
6 55.07 0.02504817
Plot:
plot(cp)
Another quick and informal way I find pretty handy is using the hist function to automatically cut the data and get the midpoints.
Using your data as data:
h <- hist(data)
cum.prob <- data.frame(value=h$mids, prob=cumsum(h$counts)/sum(h$counts))
That gives you:
cum.prob
value prob
1 55 0.2793834
2 57 0.6319846
3 59 0.8285164
4 61 0.8786127
5 63 0.8921002
6 65 0.9479769
7 67 0.9749518
8 69 0.9749518
9 71 0.9749518
10 73 0.9749518
11 75 0.9749518
12 77 1.0000000