quandl_operation 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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