quandl_operation 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0d8410610bcbdd3049efc55fef6de5e2fe284203
4
+ data.tar.gz: d8d867b424f11cd70c3eaefa0bfff4c6e369aa28
5
+ SHA512:
6
+ metadata.gz: 50637635dfbbe29e86534939cf1dec6082a558328b03c7492ae2274724c98ed35eb534c0d78f1766a41768852f3d906e9fc7ebea929fe0d271ba594bbab82ee0
7
+ data.tar.gz: b49dc76071b6a7241b54aa990da463b330f18a5e1bada0c08d43b48e1307d82ec245ff8822be6a3ed283bb6e4051cd98af6d1d8590c21290b4b500cf26dbf59c
@@ -23,7 +23,7 @@ class Transform
23
23
  end
24
24
 
25
25
  def valid_transformations
26
- [ :diff, :rdiff, :cumul, :normalize ]
26
+ [ :diff, :rdiff, :cumul, :normalize, :rdiff_from ]
27
27
  end
28
28
 
29
29
  def transform( data, type)
@@ -31,6 +31,7 @@ class Transform
31
31
  #Transforms table from actual data points
32
32
  #to differences between points (:diff)
33
33
  #or a ratio between points(:rdiff)
34
+ #or a ratio between the latest point and an earlier point (:rdiff_from)
34
35
  #If type is other than these two, nothing is done.
35
36
 
36
37
  # ensure that type is in the expected format
@@ -103,6 +104,30 @@ class Transform
103
104
 
104
105
  #delete the first date in datapac (because there is no diff for that)
105
106
  data.delete_at(0)
107
+ elsif type == :rdiff_from
108
+ num_rows = keylist.length - 1
109
+ initial = Array.new(numcols,nil)
110
+ num_rows.downto(0) do |i|
111
+ temparr[i] = []
112
+ curr_row = data[i][1..-1]
113
+ 0.upto(numcols-1) do |x|
114
+ if curr_row[x].nil?
115
+ temparr[i][x] = nil
116
+ elsif initial[x].nil?
117
+ initial[x] = curr_row[x]
118
+ temparr[i][x] = 0.0
119
+ elsif curr_row[x] == 0
120
+ temparr[i][x] = nil
121
+ else
122
+ temparr[i][x] = ( Float(initial[x]) - Float(curr_row[x]) ) / Float(curr_row[x])
123
+ end
124
+ end
125
+ end
126
+
127
+
128
+ 0.upto(keylist.length-1) do |i|
129
+ data[i] = [keylist[i], temparr[i]].flatten
130
+ end
106
131
  else
107
132
  data = Parse.sort( data, :desc )
108
133
  cumulsum = Array.new(numcols,0)
@@ -1,5 +1,5 @@
1
1
  module Quandl
2
2
  module Operation
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
@@ -0,0 +1,16 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Quandl::Operation::Transform do
5
+
6
+ context "rdiff_from" do
7
+
8
+ it "should transform the data correctly" do
9
+ data = [[1,3,5],[4,5,4],[5,15,20]]
10
+ result = Quandl::Operation::Transform.perform(data, :rdiff_from)
11
+ result.should eq [[1,4,3],[4,2,4],[5,0,0]]
12
+ end
13
+
14
+ end
15
+
16
+ end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quandl_operation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.1.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Blake Hilscher
@@ -14,7 +13,6 @@ dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: fivemat
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,33 +55,29 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: activesupport
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: 3.0.0
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: 3.0.0
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: quandl_logger
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: 0.0.3
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: 0.0.3
94
83
  description: Data will be operated
@@ -120,32 +109,33 @@ files:
120
109
  - lib/quandl/operation/version.rb
121
110
  - quandl_operation.gemspec
122
111
  - spec/quandl/operation/collapse_spec.rb
112
+ - spec/quandl/operation/transform_spec.rb
123
113
  - spec/spec_helper.rb
124
114
  homepage: http://blake.hilscher.ca/
125
115
  licenses:
126
116
  - MIT
117
+ metadata: {}
127
118
  post_install_message:
128
119
  rdoc_options: []
129
120
  require_paths:
130
121
  - lib
131
122
  required_ruby_version: !ruby/object:Gem::Requirement
132
- none: false
133
123
  requirements:
134
- - - ! '>='
124
+ - - '>='
135
125
  - !ruby/object:Gem::Version
136
126
  version: '0'
137
127
  required_rubygems_version: !ruby/object:Gem::Requirement
138
- none: false
139
128
  requirements:
140
- - - ! '>='
129
+ - - '>='
141
130
  - !ruby/object:Gem::Version
142
131
  version: '0'
143
132
  requirements: []
144
133
  rubyforge_project:
145
- rubygems_version: 1.8.25
134
+ rubygems_version: 2.0.5
146
135
  signing_key:
147
- specification_version: 3
136
+ specification_version: 4
148
137
  summary: For altering data
149
138
  test_files:
150
139
  - spec/quandl/operation/collapse_spec.rb
140
+ - spec/quandl/operation/transform_spec.rb
151
141
  - spec/spec_helper.rb