質問編集履歴
2
書式を少し改善しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,10 @@
|
|
2
2
|
|
3
3
|
ruby初学者です。
|
4
4
|
|
5
|
+
|
6
|
+
|
5
|
-
|
7
|
+
```csv
|
8
|
+
|
6
9
|
A B C D E F G
|
7
10
|
A 0 0 0 0 0 1 1
|
8
11
|
B 0 0 0 0 0 1 0
|
@@ -11,7 +14,8 @@
|
|
11
14
|
E 0 0 0 1 0 0 0
|
12
15
|
F 1 1 1 0 0 0 1
|
13
16
|
G 1 0 0 1 0 1 0
|
17
|
+
```
|
14
|
-
rubyで上記のような0,1のみで構成されたcsvデータを読み込み、2つの値を比較し、両方とも1ならnCountをカウントアップ。どちらか一方が1ならdCountをカウントアップ。両方とも0なら処理を行わない、といった処理を行いたいです。
|
18
|
+
rubyで上記のような0,1のみで構成されたcsv(test.csv)データを読み込み、2つの値を比較し、両方とも1ならnCountをカウントアップ。どちらか一方が1ならdCountをカウントアップ。両方とも0なら処理を行わない、といった処理を行いたいです。
|
15
19
|
下記ソースコードのような処理を行った際、if文の条件が反映されずnCount=0,dCount=0が毎回出力されます。
|
16
20
|
条件にdataset[i][k],dataset[j][k]を設定していることがいけないのかなと思うのですが、解決法を調べているうちに頭が混乱してしまい、手詰まりになってしまいました。
|
17
21
|
アドバイスをいただければと思います。よろしくお願いいたします。
|
1
ソースコードの書式を少し変更しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
|
26
26
|
dataset = CSV.read('../test.csv', headers: false)
|
27
27
|
|
28
|
-
nCount =0
|
28
|
+
nCount = 0
|
29
29
|
dCount = 0
|
30
30
|
|
31
31
|
(1..dataset[0].length-1).each do |i|
|
@@ -35,7 +35,7 @@
|
|
35
35
|
# dataset[i][k]とdataset[j][k]に格納された2つの値を比較したい
|
36
36
|
# p "(#{dataset[i][k]},#{dataset[j][k]})"
|
37
37
|
|
38
|
-
|
38
|
+
if dataset[i][k] == 1 && dataset[j][k] == 1
|
39
39
|
nCount += 1
|
40
40
|
elsif dataset[i][k] == 1 && dataset[j][k] == 0 || dataset[i][k] == 0 && dataset[j][k] == 1
|
41
41
|
dCount += 1
|
@@ -49,7 +49,7 @@
|
|
49
49
|
p "------"
|
50
50
|
end
|
51
51
|
|
52
|
-
end
|
52
|
+
end
|
53
53
|
```
|
54
54
|
|
55
55
|
|