daru_lite 0.2.4 → 0.3.0
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 +4 -4
- data/lib/daru_lite/dataframe.rb +3 -2
- data/lib/daru_lite/version.rb +1 -1
- data/spec/dataframe_spec.rb +11 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2ecfb59a965f8f05a20a331298549d00db4116e8a8f897dc5fdeb4c4b18dc98e
|
|
4
|
+
data.tar.gz: fefeb73d29528353d75c291817932146ff283c3160182f755e275e1561882ee1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 668c346ce88a77d215a322cd09adf8e9abe07db7d14233800e154119015d059fab6f64c5b6daccdf15844d61fbdde27d6ea99594aea4f683edba328222bedd58
|
|
7
|
+
data.tar.gz: 1c6d4e68271787f6abc543806e6409cdbcd139dbcab69d2dc55f2f4c4b7a18a389e0b1ad813ec958670c48322da35903c306f8156ab9f08c9b22e03cae9210f1
|
data/lib/daru_lite/dataframe.rb
CHANGED
|
@@ -85,15 +85,16 @@ module DaruLite
|
|
|
85
85
|
raise 'Three vectors should be equal size' if
|
|
86
86
|
rows.size != columns.size || rows.size != values.size
|
|
87
87
|
|
|
88
|
+
row_index = rows.uniq.to_a
|
|
88
89
|
data = Hash.new do |h, col|
|
|
89
|
-
h[col] =
|
|
90
|
+
h[col] = row_index.map { |r| [r, nil] }.to_h
|
|
90
91
|
end
|
|
91
92
|
columns.zip(rows, values).each { |c, r, v| data[c][r] = v }
|
|
92
93
|
|
|
93
94
|
# FIXME: in fact, WITHOUT this line you'll obtain more "right"
|
|
94
95
|
# data: with vectors having "rows" as an index...
|
|
95
96
|
data = data.transform_values(&:values)
|
|
96
|
-
data[:_id] =
|
|
97
|
+
data[:_id] = row_index
|
|
97
98
|
|
|
98
99
|
DataFrame.new(data)
|
|
99
100
|
end
|
data/lib/daru_lite/version.rb
CHANGED
data/spec/dataframe_spec.rb
CHANGED
|
@@ -1076,6 +1076,17 @@ describe DaruLite::DataFrame do
|
|
|
1076
1076
|
|
|
1077
1077
|
expect(df2).to eq(df)
|
|
1078
1078
|
end
|
|
1079
|
+
|
|
1080
|
+
it 'handles nil values in the rows vector' do
|
|
1081
|
+
v1 = DaruLite::Vector.new [nil, 'a', nil, 'a']
|
|
1082
|
+
v2 = DaruLite::Vector.new %w[x x y y]
|
|
1083
|
+
v3 = DaruLite::Vector.new [1, 2, 3, 4]
|
|
1084
|
+
df = DaruLite::DataFrame.crosstab_by_assignation(v1, v2, v3)
|
|
1085
|
+
|
|
1086
|
+
expect(df[:_id].to_a).to eq([nil, 'a'])
|
|
1087
|
+
expect(df['x'].to_a).to eq([1, 2])
|
|
1088
|
+
expect(df['y'].to_a).to eq([3, 4])
|
|
1089
|
+
end
|
|
1079
1090
|
end
|
|
1080
1091
|
|
|
1081
1092
|
context '#inspect' do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: daru_lite
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thomas Naude-Filonnière
|
|
@@ -12,7 +12,7 @@ authors:
|
|
|
12
12
|
autorequire:
|
|
13
13
|
bindir: bin
|
|
14
14
|
cert_chain: []
|
|
15
|
-
date: 2026-04-
|
|
15
|
+
date: 2026-04-14 00:00:00.000000000 Z
|
|
16
16
|
dependencies:
|
|
17
17
|
- !ruby/object:Gem::Dependency
|
|
18
18
|
name: activerecord
|